(c# form) datagridview怎么写入数据库
我在窗体中拖放了一个DATAGRIDVIEW和几个TEXTBOX在TEXTBOX中写入数据后按添加按钮添加到DATAGRIDVIEW中DataGridView1.Rows...
我在窗体中拖放了一个DATAGRIDVIEW和几个TEXTBOX
在TEXTBOX中写入数据后按添加按钮添加到 DATAGRIDVIEW中
DataGridView1.Rows.Add(商品代码, 商品名称, 规格, 单位, 入库量)
然后添加N条记录后
要将DATAGRIDVIEW中所有刚刚用Rows.Add添加的数据
一次性写入数据库该怎么办?
麻烦各位大虾帮帮忙~!!
小弟为这个问题已经烦恼很久了。。。。。。 展开
在TEXTBOX中写入数据后按添加按钮添加到 DATAGRIDVIEW中
DataGridView1.Rows.Add(商品代码, 商品名称, 规格, 单位, 入库量)
然后添加N条记录后
要将DATAGRIDVIEW中所有刚刚用Rows.Add添加的数据
一次性写入数据库该怎么办?
麻烦各位大虾帮帮忙~!!
小弟为这个问题已经烦恼很久了。。。。。。 展开
5个回答
展开全部
写入数据库的具体步骤:
1、首先新建一个项目。
2、建立一个数据库连接类LinkDataBase。因为数据库操作有很多都是重复性工作,所以我们写一个类来简化对数据库的操作。
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Data.Sql;
namespace Test
...{
class LinkDataBase
...{
//设置连接字符串
private string strSQL;
//与数据库连接
private string connectionString = "Data Source=Localhost;Initial Catalog=Test;Integrated Security=True";
private SqlConnection myConnection;
private SqlCommandBuilder sqlCmdBld;
private DataSet ds = new DataSet();
private SqlDataAdapter da;
public LinkDataBase()
...{
}
//根据输入的SQL语句检索数据库数据
public DataSet SelectDataBase(string tempStrSQL, string tempTableName)
...{
this.strSQL = tempStrSQL;
this.myConnection = new SqlConnection(connectionString);
this.da = new SqlDataAdapter(this.strSQL, this.myConnection);
this.ds.Clear();
this.da.Fill(ds, tempStrSQL);
//返回填充了数据的DataSet,其中数据表以tempTableName给出的字符串命名
return ds;
}
//数据库数据更新(传DataSet和DataTable的对象)
public DataSet UpdateDataBase(DataSet changedDataSet, string tableName)
...{
this.myConnection = new SqlConnection(connectionString);
this.da = new SqlDataAdapter(this.strSQL, this.myConnection);
this.sqlCmdBld = new SqlCommandBuilder(da);
this.da.Update(changedDataSet, tableName);
//返回更新过的数据库表
return changedDataSet;
}
//检索数据库数据(传字符串,直接操作数据库)
public DataTable SelectDataBase(string tempStrSQL)
...{
this.myConnection = new SqlConnection(connectionString);
DataSet tempDataSet = new DataSet();
this.da = new SqlDataAdapter(tempStrSQL, this.myConnection);
this.da.Fill(tempDataSet);
return tempDataSet.Tables[0];
}
//数据库数据更新(传字符串,直接操作数据库)
public int UpdateDataBase(string tempStrSQL)
...{
this.myConnection = new SqlConnection(connectionString);
myConnection.Open();
SqlCommand tempSqlcommand = new SqlCommand(tempStrSQL, this.myConnection);
int intNumber = tempSqlcommand.ExecuteNonQuery();
myConnection.Close();
return intNumber;
}
}
}
1、首先新建一个项目。
2、建立一个数据库连接类LinkDataBase。因为数据库操作有很多都是重复性工作,所以我们写一个类来简化对数据库的操作。
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Data.Sql;
namespace Test
...{
class LinkDataBase
...{
//设置连接字符串
private string strSQL;
//与数据库连接
private string connectionString = "Data Source=Localhost;Initial Catalog=Test;Integrated Security=True";
private SqlConnection myConnection;
private SqlCommandBuilder sqlCmdBld;
private DataSet ds = new DataSet();
private SqlDataAdapter da;
public LinkDataBase()
...{
}
//根据输入的SQL语句检索数据库数据
public DataSet SelectDataBase(string tempStrSQL, string tempTableName)
...{
this.strSQL = tempStrSQL;
this.myConnection = new SqlConnection(connectionString);
this.da = new SqlDataAdapter(this.strSQL, this.myConnection);
this.ds.Clear();
this.da.Fill(ds, tempStrSQL);
//返回填充了数据的DataSet,其中数据表以tempTableName给出的字符串命名
return ds;
}
//数据库数据更新(传DataSet和DataTable的对象)
public DataSet UpdateDataBase(DataSet changedDataSet, string tableName)
...{
this.myConnection = new SqlConnection(connectionString);
this.da = new SqlDataAdapter(this.strSQL, this.myConnection);
this.sqlCmdBld = new SqlCommandBuilder(da);
this.da.Update(changedDataSet, tableName);
//返回更新过的数据库表
return changedDataSet;
}
//检索数据库数据(传字符串,直接操作数据库)
public DataTable SelectDataBase(string tempStrSQL)
...{
this.myConnection = new SqlConnection(connectionString);
DataSet tempDataSet = new DataSet();
this.da = new SqlDataAdapter(tempStrSQL, this.myConnection);
this.da.Fill(tempDataSet);
return tempDataSet.Tables[0];
}
//数据库数据更新(传字符串,直接操作数据库)
public int UpdateDataBase(string tempStrSQL)
...{
this.myConnection = new SqlConnection(connectionString);
myConnection.Open();
SqlCommand tempSqlcommand = new SqlCommand(tempStrSQL, this.myConnection);
int intNumber = tempSqlcommand.ExecuteNonQuery();
myConnection.Close();
return intNumber;
}
}
}
展开全部
兄弟你的datagridview的用法完全错误,这样显示出来的数据恐怕很难提交到数据库,先学会用控件在来弄数据库吧,提示一下datagridview显示数据用到它的DataSource属性,而提交修改后的数据到数据库用到SqlDataAdapter和DataSet,SqlCommandBuilder, SqlConnection四个对象,想想
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
DATAGRIDVIEW只是用来呈现数据的,不是用来存储数据的,所以不能像你想的那样:先把数据添加到DataGridView控件里(DataGridView1.Rows.Add),再把DATAGRIDVIEW里的新数据提交到数据库,这样不对,
有两种方法:
1.把数据先添加到DATAGRIDVIEW所绑定的数据源里(如DataSet或DataTable或别的数据源对象),DATAGRIDVIEW就会显示新数据,然后用适配器的update方法提交到数据库里,
2.添加的时候就直接添加到数据库里,然后重新get一下数据,绑定即可,
有两种方法:
1.把数据先添加到DATAGRIDVIEW所绑定的数据源里(如DataSet或DataTable或别的数据源对象),DATAGRIDVIEW就会显示新数据,然后用适配器的update方法提交到数据库里,
2.添加的时候就直接添加到数据库里,然后重新get一下数据,绑定即可,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以将数据添加进数据库,不过你要写sql语句
通过ADO.NET
将数据写入数据库
至于取得DataGridView的数据的方式是这样的
取到具体的莫伊格
DataGridView.Rows[i].Cell[j].ToString().Trim()
这样就可以得到具体某一格内容的字符串吧,然后用一个循环语句插入数据库中即可
通过ADO.NET
将数据写入数据库
至于取得DataGridView的数据的方式是这样的
取到具体的莫伊格
DataGridView.Rows[i].Cell[j].ToString().Trim()
这样就可以得到具体某一格内容的字符串吧,然后用一个循环语句插入数据库中即可
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果楼主看以上的有些麻烦,你可以试试这个方法。
先定义一个List<string> sqls,
你点击添加按钮的时候再加上sqls.add(需要的sql语句),
然后
public static bool SQLExecuteTransaction(string[] sqls,ref string errorMsg)
{
using (OleDbConnection conn = new OleDbConnection(connstring))
{
try
{
conn.Open();
OleDbTransaction trans = conn.BeginTransaction();
try
{
OleDbCommand cmd = conn.CreateCommand();
cmd.Transaction = trans;
//cmd.CommandText
foreach (string s in sqls)
{
cmd.CommandText = s;
cmd.ExecuteNonQuery();
}
trans.Commit();
return true;
}
catch (Exception e)
{
trans.Rollback();
errorMsg = e.Message;
return false;
}
finally
{
conn.Close();
}
}
catch (Exception e)
{
//trans.Rollback();
errorMsg = e.Message;
return false;
}
}
}
先定义一个List<string> sqls,
你点击添加按钮的时候再加上sqls.add(需要的sql语句),
然后
public static bool SQLExecuteTransaction(string[] sqls,ref string errorMsg)
{
using (OleDbConnection conn = new OleDbConnection(connstring))
{
try
{
conn.Open();
OleDbTransaction trans = conn.BeginTransaction();
try
{
OleDbCommand cmd = conn.CreateCommand();
cmd.Transaction = trans;
//cmd.CommandText
foreach (string s in sqls)
{
cmd.CommandText = s;
cmd.ExecuteNonQuery();
}
trans.Commit();
return true;
}
catch (Exception e)
{
trans.Rollback();
errorMsg = e.Message;
return false;
}
finally
{
conn.Close();
}
}
catch (Exception e)
{
//trans.Rollback();
errorMsg = e.Message;
return false;
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询