如何实现c# winform DataGridView添加一行,添加数据后,保存到数据库?

如何实现c# winform DataGridView添加一行,添加数据后,保存到数据库?,第1张

1、点击添加,实例化一个DataGridView的行对象DataRow 然后把这个对象添加到DataGridView中,你的DataGridView要是可编辑状态,然后编辑数据,点保存循环读取DataGridView的行数据,存到实体类中,在通过后台SQL保存到数据库

2、将datagridview于数据库中对应的表进行绑定,绑定完成之后直接在datagridview中进行添加就可以,自动在数据库中添加并保存。

3、创建一个表结构,每次新增的时候往表里面加一条记录,然后DataGridView再绑定表就可以了。保存的时候连接数据库+sql就完成了。

4、就是正常的添加就可以了啊。首先连接数据库 而后插入数据库的表。

5、gridview没有自带这种功能,只自带了,编辑删除(也可能是我不知道,我没用过直接可以添加一行新的)你可以模仿一个这样的功能,用js动态添加一行textbox,每个字段对应一个,你把数据添加后,点击保存,就ok了,当然你的动态添加的textbox要在gridview下面,样式要对齐,感觉上是gridview添加了一行。

这个好办啊!你只需要在GataGridView的CellClick事件里写上相应的代码即可!

CellClick是当GataGridView里的单元格被点击时被调用的事件

加入你的数据表里有“姓名”和“工资”两列数据。

int rowindex = GataGridView.CurrentCell.RowIndex //得到行号

txtName.Text = GataGridView.Rows[rowindex].Cells[0].Value.ToString()

txtMoney.Text =GataGridView.Rows[rowindex].Cells[1].Value.ToString()

把你所要现实的数据与数据库相应的数据绑定!

然后只需在修改,删除事件里创建一个SqlCommandBuilder对象(它能自动生成insert update delete语句)有了这个对象,就不用手写insert update delete语句,由该对象,根据数据库中数据表的结构,自动生成

SqlCommandBuilder scb = new SqlCommandBuilder(adp)

这里的adp是SqlDataAdapter的对象名,你在生成SqlCommandBuilder 之前必须创建一个数据适配器(SqlDataAdapter)即SqlDataAdapter adp = new SqlDataAdapter();

这样,adp就具备了添加,修改,删除的功能,再让adp影响数据库,当它具备了以上的这些功能,就可以让数据集所做的修改影响数据库的改变

adp.Update(DataSet对象名, "数据集里的表名")

txt?总得有点标准格式的吧,比如类似csv的“,”间隔。这是我的代码你自己看看可能帮上忙。

public DataTable CsvToDataTable(string filePath)

{//filePath是csv文件的存放路径

StreamReader sr = null

try

{

sr = new StreamReader(filePath,Encoding.GetEncoding ("GB2312"))

string str = sr.ReadLine()

string[] asF = str.Split(',')

DataTable dt = new DataTable()

for (int i = 0i <asF.Lengthi++)

{

dt.Columns.Add(asF[i])

}

str = sr.ReadLine()

while (str != null)

{

asF = str.Split(',')

if (asF.Length != dt.Columns.Count)

{

continue

}

DataRow drow = dt.NewRow()

for (int i = 0i <asF.Lengthi++)

{

drow[i] = asF[i]

}

dt.Rows.Add(drow)

str = sr.ReadLine()

}

return dt

}

finally

{

if (sr != null)

{

sr.Close()

}

}

}

获得DataTable dt后,填充到DataSet ds = new DataSet()

ds.Tables.Add(dt)

最后通过调用DataSetSql()方法直接将DataSet ds拷贝到目标数据库的表DATA里:

public void DataSetToSql(DataSet ds)

{

SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction)

sqlbulkcopy.DestinationTableName = "DATA"

sqlbulkcopy.WriteToServer(ds.Tables[0])

}

前提是你必须知道数据库的每个字段。

刚好我下午写了这段代码,希望对你有点帮助吧

对啊 原理是一样的 只不过我的是以“,”分割,你的是以“ ”空格分割,只要你能正确的将这些数据规范的写到DataSet里,理论上你想添加多少条就能添加多少条。


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

原文地址:https://54852.com/bake/11645691.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存