比如:
for (int i=0;i<10;i++)
{
//此处循环把i的值写进datatable
}//此处把datatable里存的10条数据全部写进SQL数据库(10行)
//此处清空datatable
for (int i=0;i<10;i++)
{
//此处循环把i的值写进datatable
}//此处把datatable里存的10条数据全部写进SQL数据库(10行)
//此处清空datatable
o["column1"] = "";
o["column2"] = "";
datatable.rows.add(o);
然后用再用DataAdapter来提交..其实可以不用这样做.我觉得你循环的时候拼好10条Sql语句,然后一次给数据库,可能会更好一点..
for (int i=0;i<10;i++)
{
datarow o = datatable.newrow();
o["column1"] = "";
o["column2"] = "";
datatable.rows.add(o);
//此处循环把i的值写进datatable
//建议在此拼SQL语句..
}
提交..首先你的DataTable应有数据库的相关相信..
再麻烦请教下怎么把DATATABLE的数据写进数据库呢?最后在清空DATATABLE
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.UpdateCommand = new SqlCommand();
adapter.UpdateCommand.Connection = connection;
adapter.Update(DataTable);
}
我数据库的表名、结构、字段名和DataTable都一样的
SqlConnection MyConn = new SqlConnection(strconnection);
MyConn.Open();
SqlDataReader dr=MyCMD.ExecuteReader();
dr.Read();
DataTable dt = new DataTable("HistoryTemp");
dt.Columns.Add("History",typeof(String));
while ((line=sr.ReadLine()) != null) //循环把文本文件里的数据读入DataTable
{
DataRow ADR = dt.NewRow();
ADR["History"]=line;
dt.Rows.Add(ADR);}
SqlDataAdapter da = new SqlDataAdapter();
da.UpdateCommand = new SqlCommand();
da.UpdateCommand.Connection=MyConn;
da.Update(dt);
SqlConnection MyConn = new SqlConnection(strconnection);
MyConn.Open();
SqlDataReader dr=MyCMD.ExecuteReader();
dr.Read();
DataTable dt = new DataTable("HistoryTemp");
dt.Columns.Add("History",typeof(String));
while ((line=sr.ReadLine()) != null) //循环把文本文件里的数据读入DataTable
{
DataRow ADR = dt.NewRow();
ADR["History"]=line;
ADR.RowState = DataRowState.Added; ///////////////////////////////新添加的
dt.Rows.Add(ADR);}
SqlDataAdapter da = new SqlDataAdapter();
da.UpdateCommand = new SqlCommand();
da.UpdateCommand.Connection=MyConn;
da.Update(dt);
da.Update(dt.Select(null, null, DataViewRowState.Added));
试下..其实我也没有那样子做过.我遇到那样的应用会比较少:)
如何使用 Visual C# 2005 或 Visual C# .NET 通过 DataSet 对象更新数据库
http://support.microsoft.com/kb/307587/
就是不能写进SQL
strconnection=@"server=127.0.0.1;database=OA;uid=sa;pwd=123321";
SqlConnection MyConn = new SqlConnection(strconnection);DataTable dt = new DataTable("HistoryTemp");
dt.Columns.Add("History",typeof(String));SqlDataReader dr = MyCMD.ExecuteReader();
dr.Read();
while ((line=sr.ReadLine()) != null) //循环把文本文件里的数据读入DataTable
{
DataRow ADR = dt.NewRow();
ADR["History"] = line;
dt.Rows.Add(ADR);
}
//SqlDataAdapter da = new SqlDataAdapter();
//da.UpdateCommand = new SqlCommand();
//da.UpdateCommand.Connection=MyConn;
//da.Update(dt);MyConn.Open();
using (SqlBulkCopy oBC = new SqlBulkCopy(oConn))
{
oBC.DestinationTableName = "HistoryTemp";
oBC.WriteToServer(dt);
}
MyConn.Close();关于SqlBulkConpy的更多用法,查阅MSDN就好了..实在对不住了..
SqlDataAdapter da = new SqlDataAdapter("select 。。",MyConn);//读取表结构
SqlCommandBuilder builder = new SqlCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds,"HistoryTemp");
DataTable dt = new DataTable();
dt=ds.Tables["HistoryTemp"];
while ((line=sr.ReadLine()) != null)
{
// 循环
}
da.Update(ds,"HistoryTemp");以上方法绝对可行