积极答复者
怎么把后台的datatable添加到数据库的表中

问题
答案
-
方法二:
1)先用SqlCommandBuilder为指定表生成CRUD方法(增删改)。
2)然后用SqlDataAdapter填充到一个DataTable中。
3)最后,无论你对DataTable干了什么,直接调用DataAdapter.Update(dataTable)即可。
参考MSDN例子:http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlcommandbuilder.aspx
public static DataSet SelectSqlRows(string connectionString, string queryString, string tableName) { using (SqlConnection connection = new SqlConnection(connectionString)) { SqlDataAdapter adapter = new SqlDataAdapter(); adapter.SelectCommand = new SqlCommand(queryString, connection); SqlCommandBuilder builder = new SqlCommandBuilder(adapter); connection.Open(); DataSet dataSet = new DataSet(); adapter.Fill(dataSet, tableName); //code to modify data in DataSet here builder.GetUpdateCommand(); //Without the SqlCommandBuilder this line would fail adapter.Update(dataSet, tableName); return dataSet; } }
- 已标记为答案 初阶风行 2012年8月31日 5:14
全部回复
-
最好有详细代码。。。
不用循环能做不
方法一:
SqlCommand cmd = new SqlCommand("insert into 表名(字段1,字段2,……字段N)values(@1,@2,……,@n)",new SqlConnection("连接字符串……")); cmd.Connection.Open(); foreach(DataRow row in dt.Rows) //假设dt是一个表 { cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@1",row[0].ToString()); …………………… cmd.ExecuteNonQuery(); }
-
方法二:
1)先用SqlCommandBuilder为指定表生成CRUD方法(增删改)。
2)然后用SqlDataAdapter填充到一个DataTable中。
3)最后,无论你对DataTable干了什么,直接调用DataAdapter.Update(dataTable)即可。
参考MSDN例子:http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlcommandbuilder.aspx
public static DataSet SelectSqlRows(string connectionString, string queryString, string tableName) { using (SqlConnection connection = new SqlConnection(connectionString)) { SqlDataAdapter adapter = new SqlDataAdapter(); adapter.SelectCommand = new SqlCommand(queryString, connection); SqlCommandBuilder builder = new SqlCommandBuilder(adapter); connection.Open(); DataSet dataSet = new DataSet(); adapter.Fill(dataSet, tableName); //code to modify data in DataSet here builder.GetUpdateCommand(); //Without the SqlCommandBuilder this line would fail adapter.Update(dataSet, tableName); return dataSet; } }
- 已标记为答案 初阶风行 2012年8月31日 5:14