{
if (this.listView1.SelectedItems == null) return
ListViewItem item = this.listView1.SelectedItems[0]//选中的ltem
if (this.comboBox1.SelectedIndex == -1) return
if (item == null) return
//把每一项里的值取出来
string a = item.SubItems[0].Text.ToString()
string b = item.SubItems[1].Text.ToString()
string c = item.SubItems[2].Text.ToString()
string d = item.SubItems[3].Text.ToString()
}
然后你用ADO连接数据库,写insert语句,把取出来的值当参数传给SQL语句。就可以了 思路大概是这样的,希望你帮助你~
MYSQL_ROW row 是mysql内部的类型,可能是一个结构体A,mysql先执行以下desc table的 *** 作,依照表结构创建字段,也可能只是得到一行数据有几列,分别是什么类型。row = mysql_fetch_row(result)会取一样的数据,mysql里面每成功调用一次这个函数mysql_fetch_row就会取一行,类似
vector<struct A>v_a
··········赋值v_a·········
全局定义 int x = 0
function: mysql_fetch_row
while (x <v_a.size())
row = v_a[x++]
mysql_fetch_lengths是得到一个row里面有多少数据,也就是table里的字段数
后面取的过程就很简单了,某个字段row[i] 为空的时候,不做row[i] ? row[i] : "NULL" 取到的会是个'\0',这个对于程序处理是比较危险的,为空的时候就附值一个标识是比较常用的做法。
fyi
你的问题不甚清晰。需要插入的数据来源是在窗体中吗?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条)