SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction)
sqlbulkcopy.DestinationTableName = "Table_1"//数据库中的表名
sqlbulkcopy.WriteToServer(dataset.Tables[0])
//2、使用sqlcommand.executenonquery()方法插入
foreach (DataRow datarow in datatable.Rows)
{
string sql = "INSERT INTO [Table_1]
([CompanyName],[CompanyCode],[Address],[Owner],[Memo])" +
"VALUES('" + datarow["CompanyName"].ToString() + "'" +
",'" + datarow["CompanyCode"].ToString() + "'" +
",'" + datarow["Address"].ToString() + "'" +
",'" + datarow["Owner"].ToString() + "'" +
",'" + datarow["Memo"].ToString() + "')"
using (SqlConnection sqlconn = new SqlConnection(connectionString))
{
sqlconn.Open()
SqlCommand sqlcommand = new SqlCommand(sql, sqlconn)
sqlcommand.ExecuteNonQuery()
sqlconn.Close()
}
}
使用sqldataadapter.update(dataset,tablename)
SqlCommand insertcommand = new SqlCommand("INSERT INTO [Table_1]([CompanyName],[CompanyCode],[Address],[Owner],[Memo])" +
"VALUES(@CompanyName, @CompanyCode,@Address,@Owner,@Memo)",new SqlConnection(connectionString))
insertcommand.Parameters.Add("@CompanyName", SqlDbType.NChar, 50, "CompanyName")
insertcommand.Parameters.Add("@CompanyCode", SqlDbType.NChar, 25, "CompanyCode")
insertcommand.Parameters.Add("@Address", SqlDbType.NChar, 255, "Address")
insertcommand.Parameters.Add("@Owner", SqlDbType.NChar, 25, "Owner")
insertcommand.Parameters.Add("@Memo", SqlDbType.NChar, 255, "Memo")
sqldataadapter.InsertCommand = insertcommand
sqldataadapter.Update(dataset, "Table_1")
使用sqlbulkcopy.writetoserver(datatable)
SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction)
sqlbulkcopy.DestinationTableName = "Table_1"//数据库中的表名
sqlbulkcopy.WriteToServer(dataset.Tables[0])
问题补充:把数据库中的数据添加到DataTable中,然后把DataTable做为DataGridSqlDataAdapter sda = new SqlDataAdapter()sda.SelectCommand = cmd软糖来回答罗。
我这里有个SQL连接数据库的示例,可以参考下。
public void 数据集测试(){
//(1.连接)建立到数据库的 连接 conn
SqlConnection conn = new SqlConnection()
conn.ConnectionString = @"Data Source = (LocalDB)\MSSQLLocalDB AttachDbFilename = J:\数据库\SQLDB\NewDB.mdf Integrated Security = True Connect Timeout = 5"
//(2.打开)
conn.Open()
string 表名 = "Users"
using (conn)
{
//(3.适配)适配器 da 和 数据集 ds
da = new SqlDataAdapter()
ds = new DataSet("DataSet1")
// 将DataTable添加到DataSet
ds.Tables.Add(dt)
// 将DataSet的修改提交至“数据库”
SqlCommandBuilder mySqlCommandBuilder = new SqlCommandBuilder(da)
da.Update(ds, dt.TableName)
}
//(6.释放资源)
conn.Close()
conn.Dispose()
//注意:在修改、删除等 *** 作中表必须定义主键,select的字段也必须包含主键,
//否则会抛出异常“对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成。”
}
上面的dt变量就是你的表,需要给它指定一个TableName名字。
连接字符串需要改成你数据库的,在服务器资源管理器>数据连接>属性页面>连接字符串
(鼠标选中然后按Ctrl+C复制)
如满意,请采纳,谢谢。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)