怎么在datagridview里面添加新行,就是添加按钮的代码

时间:2022-05-03 10:32:29
大家好,问一个很菜很菜的问题。就是怎么写添加按钮里的代码。我想把数据库的内容添加到datagridview里面。在运行时也可以添加新的内容到数据库。谢谢大家了。

18 个解决方案

#1


还有我的数据库是access的

#2


首先你要将数据读出到内存表dataset中,然后将你的datagrid控件的数据源绑定到该dataset中,例如下面,在你的
相应函数中调用就可以了
/// <summary>
        /// 用Adapter方式打开数据库和访问数据库
        /// </summary>
        /// <param name="dataGridView">待填充的控件</param>
        /// <param name="strConnect">数据库连接字符串,如string dbConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =C:\\test.mdb; ";</param>
        /// <param name="strSql">sql语句,如SELECT * FROM [tblSampleInformation]</param>
        public static void LoadInfo(DataGridView dataGridView, string strConnect, string strSql)
        {
            string dbCommand = null;           
            string dbConnect = strConnect;          
            dbCommand = strSql;

            OleDbConnection mySqlConnection = new OleDbConnection(dbConnect);
            OleDbDataAdapter mySqlDataAdapter = new OleDbDataAdapter(dbCommand, mySqlConnection);           

            DataSet myDataSet = new DataSet();
           
            DataView myDataView;
            try
            {
                mySqlConnection.Open();  
              
                mySqlDataAdapter.Fill(myDataSet, "Relation Join");

                myDBTransaction.Commit();

                myDataView = myDataSet.Tables["Relation Join"].DefaultView;
                dataGridView.DataSource = myDataView;
            }
            catch (Exception exp)
            {               
                Console.WriteLine(exp.Message);
            }
            finally
            {
                mySqlConnection.Close();
            }
        }

#3


上面的myDBTransaction.Commit(); 应该注销,原来我是用的事务的.

#4


我是想点击添加按钮后,输入的东西能自动添加进数据库去

#5


噢,不好意思,没完全看明白!
那你应该在添加按钮相应函数中写更新数据库的语句了

#6


那上面的代码是?
是不是里面还要写存储过程啊,因为将来在客户端还会插入很多数据的。
我就是还不知道怎么调用存储过程

#7


绑定之后,只要数据源中增加了新记录,DataGrid/DataGridView界面上会自动增加新行。

#8


可是如果是要新增加行呢

#9


引用 7 楼 dancingbit 的回复:
绑定之后,只要数据源中增加了新记录,DataGrid/DataGridView界面上会自动 增加新行

#10


哦,那我只要在按钮里在写个sql语句就行了,对吧

#11


不需要,这里:

                mySqlDataAdapter.Fill(myDataSet, "Relation Join"); 

数据已经在内存中了,只需要:

DataTable dt=myDataSet.Tables["Relation Join"];
DataRow dr=dt.NewRow();
dt.Rows.Add(dr);

当然,你要能保证访问到myDataSet。

#12


那么我这个添加按钮是不是不用加了

#13


只要你能确定一个合适的时机执行这个动作就行了:

DataTable dt=myDataSet.Tables["Relation Join"];
DataRow dr=dt.NewRow();
dt.Rows.Add(dr);

#14


datagridview 好像没有绑定的啊

#15


没有绑定?设置了DataSource就会绑定。

#16


哦,谢谢啦。我本来以为它像datagrid一样的。

#17


在这一点上,有什么不同吗?

#18


datagrid可以点出databind;
但是datagridview不行啊

#1


还有我的数据库是access的

#2


首先你要将数据读出到内存表dataset中,然后将你的datagrid控件的数据源绑定到该dataset中,例如下面,在你的
相应函数中调用就可以了
/// <summary>
        /// 用Adapter方式打开数据库和访问数据库
        /// </summary>
        /// <param name="dataGridView">待填充的控件</param>
        /// <param name="strConnect">数据库连接字符串,如string dbConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =C:\\test.mdb; ";</param>
        /// <param name="strSql">sql语句,如SELECT * FROM [tblSampleInformation]</param>
        public static void LoadInfo(DataGridView dataGridView, string strConnect, string strSql)
        {
            string dbCommand = null;           
            string dbConnect = strConnect;          
            dbCommand = strSql;

            OleDbConnection mySqlConnection = new OleDbConnection(dbConnect);
            OleDbDataAdapter mySqlDataAdapter = new OleDbDataAdapter(dbCommand, mySqlConnection);           

            DataSet myDataSet = new DataSet();
           
            DataView myDataView;
            try
            {
                mySqlConnection.Open();  
              
                mySqlDataAdapter.Fill(myDataSet, "Relation Join");

                myDBTransaction.Commit();

                myDataView = myDataSet.Tables["Relation Join"].DefaultView;
                dataGridView.DataSource = myDataView;
            }
            catch (Exception exp)
            {               
                Console.WriteLine(exp.Message);
            }
            finally
            {
                mySqlConnection.Close();
            }
        }

#3


上面的myDBTransaction.Commit(); 应该注销,原来我是用的事务的.

#4


我是想点击添加按钮后,输入的东西能自动添加进数据库去

#5


噢,不好意思,没完全看明白!
那你应该在添加按钮相应函数中写更新数据库的语句了

#6


那上面的代码是?
是不是里面还要写存储过程啊,因为将来在客户端还会插入很多数据的。
我就是还不知道怎么调用存储过程

#7


绑定之后,只要数据源中增加了新记录,DataGrid/DataGridView界面上会自动增加新行。

#8


可是如果是要新增加行呢

#9


引用 7 楼 dancingbit 的回复:
绑定之后,只要数据源中增加了新记录,DataGrid/DataGridView界面上会自动 增加新行

#10


哦,那我只要在按钮里在写个sql语句就行了,对吧

#11


不需要,这里:

                mySqlDataAdapter.Fill(myDataSet, "Relation Join"); 

数据已经在内存中了,只需要:

DataTable dt=myDataSet.Tables["Relation Join"];
DataRow dr=dt.NewRow();
dt.Rows.Add(dr);

当然,你要能保证访问到myDataSet。

#12


那么我这个添加按钮是不是不用加了

#13


只要你能确定一个合适的时机执行这个动作就行了:

DataTable dt=myDataSet.Tables["Relation Join"];
DataRow dr=dt.NewRow();
dt.Rows.Add(dr);

#14


datagridview 好像没有绑定的啊

#15


没有绑定?设置了DataSource就会绑定。

#16


哦,谢谢啦。我本来以为它像datagrid一样的。

#17


在这一点上,有什么不同吗?

#18


datagrid可以点出databind;
但是datagridview不行啊