BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / dot-net / #4038同步于 2013/1/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖

c#问题,求大牛解惑

mickymu
2013/1/20镜像同步2 回复
分割线之前: 因为项目需要,要把csv文件读入到dataset中处理后再导入数据库。我对C#一点不懂,在网上看到些代码如下: ___________________________________________________________________ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data; using System.Configuration; using System.Data.SqlClient; using System.Data.Common; namespace first { class Program { static void Main(string[] args) { string path = System.IO.Path.GetDirectoryName(System.Environment.GetCommandLineArgs()[0]); System.Data.Odbc.OdbcConnection conn = new System.Data.Odbc.OdbcConnection("Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" + path + ";Extensions=asc,csv,tab,txt;"); string file = System.IO.Path.GetFileName(System.Environment.GetCommandLineArgs()[0]); int aIndex = file.IndexOf("."); if (aIndex > -1) { file = file.Substring(0, aIndex) + "In.csv"; } if (System.IO.File.Exists(file) == false) { MessageBox.Show("The CSV file is not exist!!! "); return; } string SqlRead = "select * from " + file; System.Data.Odbc.OdbcDataAdapter myAdapter = new System.Data.Odbc.OdbcDataAdapter(SqlRead, conn); System.Data.DataSet myDataset = new DataSet(); myAdapter.Fill(myDataset); for (int i = 0; i < myDataset.Tables[0].Rows.Count; i++) { string ryohanCD = myDataset.Tables[0].Rows[i][0].ToString(); string ryohanName = myDataset.Tables[0].Rows[i][1].ToString(); DbCommand comm = new SqlCommand("INSERT INTO en_RyohanMaster(RyohanCD, RyohanName) VALUES('" + ryohanCD + "', '" + ryohanName + "')"); SqlTransaction sqlt = conn.BeginTransaction(); comm.Transaction = sqlt; try { comm.Connection = conn; comm.ExecuteNonQuery(); sqlt.Commit(); } catch (System.Exception ex) { sqlt.Rollback(); MessageBox.Show("Error happened then to the end!" + ex.Message); return; } } //SetGridView(aString); } } } ________________________________________________________________________________ 报错如下:错误 1 无法将类型“System.Data.Odbc.OdbcTransaction”隐式转换为“System.Data.SqlClient.SqlTransaction” 知道错误原因,但因为实在是没用过C#,不知道如何处理,希望各位大牛不吝指教。 谢谢
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
ahomer机器人#1 · 2013/1/23
那就不用System.Data.SqlClient.SqlTransaction,改用: System.Data.Odbc.OdbcTransaction sqlt = conn.BeginTransaction();
Anti2005机器人#2 · 2013/2/3
可以直接写一个解析文本的类。没几行代码