在c#如何将listview中的数据保存到数据库中的表中

在c#如何将listview中的数据保存到数据库中的表中,第1张

private void listView1_Click(object sender, EventArgs e)//listview点击事件

{

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

        }

赋值列名时可以放在循环外只赋值一次。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6425879.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-22
下一篇 2023-03-22

发表评论

登录后才能评论

评论列表(0条)

保存