你的问题不甚清晰。需要插入的数据来源是在窗体中吗?SQL需要拼接吗?
给你一段代码参考,这段代码是将窗体中dataGridView中的数据循环插入数据库,循环过程中拼接SQL,并执行插入:
//主方法,拼接SQL并执行插入private int InsertInTo()
{
StringBuilder sqlinsert = new StringBuilder()
StringBuilder sqlvalue = new StringBuilder()
sqlinsert.Append(" insert into 你的表名 ( ")
sqlvalue.Append(" values(")
int num = 0//该变量用来获取插入多少条数据
for (int i = 0 i < dataGridView1.Rows.Count i++)
{
for (int c = 0 c < dataGridView1.Columns.Count c++)
{
sqlinsert.Append(dataGridView1.Columns[c].HeaderText + ",")//赋值列名
sqlvalue.Append("'" + dataGridView1.Rows[i].Cells[c].Value.ToString() + "'")//赋值列对应的值
}
string sql = sqlinsert.ToString().Substring(0, sqlinsert.Length - 1) + ") " + sqlvalue.ToString().Substring(0, sqlvalue.Length - 1) + ")"//拼接完整插入SQL
num += Insert(sql)//调用插入方法,并接收返回的插入行数
}
return num
}
//连接数据库并执行SQL
private int Insert(string sql)
{
string connstring = "server=127.0.0.1\\SQLEXPRESSdatabase=你的数据库名uid=用户名pwd=密码"
SqlConnection conn = new SqlConnection(connstring)
SqlCommand cmd = new SqlCommand(sql, conn)
conn.Open()
int n = cmd.ExecuteNonQuery()//执行
conn.Close()
cmd.Dispose()
return n
}
赋值列名时可以放在循环外只赋值一次。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)