none
怎么把后台的datatable添加到数据库的表中 RRS feed

答案

  • 一次性把大型 DataTable 推入数据库的方法, MSDN 有非常详细的代码:

    SqlBulkCopy.WriteToServer 方法 (DataTable)

    http://msdn.microsoft.com/zh-cn/library/ex21zs8x.aspx


    学习学习....

    2012年8月30日 2:50
  •  方法二:

     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;
        }
    }

    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年8月30日 2:08
    版主

全部回复

  • 最好有详细代码。。。

    不用循环能做不

    方法一:

    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();
    }
    

    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年8月30日 2:05
    版主
  •  方法二:

     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;
        }
    }

    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年8月30日 2:08
    版主
  • 一次性把大型 DataTable 推入数据库的方法, MSDN 有非常详细的代码:

    SqlBulkCopy.WriteToServer 方法 (DataTable)

    http://msdn.microsoft.com/zh-cn/library/ex21zs8x.aspx


    学习学习....

    2012年8月30日 2:50