winforms 我的网格控件未显示连接的SQL Server数据表

nfeuvbwi  于 2023-02-16  发布在  SQL Server
关注(0)|答案(1)|浏览(127)

在这个表单中,我只有一个gridcontrol,这个datasource是连接到SQL Server的datatablegridcontrol的底部有四个按钮,分别是选择、插入、删除、修改gridcontrol。这是我的代码,当插入按钮被点击时,它会发生click事件。

private void InputButton_Click(object sender, EventArgs e)
        {
            try
            {
                using (SqlConnection conn = new SqlConnection(mssql))
                {
                    conn.Open();
                    SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();
                    SqlCommand cmd = new SqlCommand("Insert into [Department] (부서코드, 부서명) values (@부서코드, @부서명)", conn);
                    cmd.Parameters.AddWithValue("@부서코드", "2101");
                    cmd.Parameters.AddWithValue("@부서명", "영업부");
                    sqlDataAdapter.InsertCommand = cmd;
                    int result = cmd.ExecuteNonQuery();
                    if (result < 0)
                    {
                        MessageBox.Show("There are errors when inserting data");
                    }
                    else
                    {
                        sqlDataAdapter.Update(dataTable);
                        gridControl1.RefreshDataSource();
                        conn.Close();
                    }
                }
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            
        }

当我点击插入按钮时,gridcontrol中没有任何事件,所以我没有看到插入查询的任何变化。但是,关闭窗体并重新打开窗体,然后我可以在gridcontrol中看到我的插入查询。即使我使用gridcontrol.refreshdatasource,但我不知道什么,我在点击插入按钮后很快就看不到任何变化。有什么答案吗?
甚至我尝试使用try catch,但我不知道我的问题。我想显示gridcontrol.refreshdatasource当我点击插入查询。

muk1a3rh

muk1a3rh1#

要在C#Winform中使用GridControl和DataTable插入SQL Server数据,可以按照下列步骤操作:
1.创建连接到SQL Server数据库的连接字符串。可以使用SqlConnection类创建连接字符串。

string connectionString ="Server<server_name>;Database<database_name>;User Id=<username>;Password=<password>;";

1.创建DataTable对象以存储将在GridControl中显示的数据。可以向DataTable对象添加列以匹配SQL Server表中的列。

DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Age", typeof(int));

1.创建一个SqlDataAdapter对象,并使用该对象用SQL Server表中的数据填充DataTable对象。可以使用SELECT语句检索数据。

SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM <table_name>", connectionString);
adapter.Fill(dt);

1.将GridControl的DataSource属性设置为DataTable对象以显示GridControl中的数据。

gridControl1.DataSource = dt;

1.使用NewRow方法向DataTable对象添加新行,并设置列的值。

DataRow row = dt.NewRow();
row["ID"] = 1;
row["Name"] = "Bob Ross";
row["Age"] = 52;
dt.Rows.Add(row);

1.创建SqlCommand对象以将数据插入SQL Server表。可以使用INSERT INTO语句插入数据。

SqlCommand cmd = new SqlCommand("INSERT INTO <table_name> (ID, Name, Age) VALUES (@ID, @Name, @Age)", connection);
cmd.Parameters.AddWithValue("@ID", row["ID"]);
cmd.Parameters.AddWithValue("@Name", row["Name"]);
cmd.Parameters.AddWithValue("@Age", row["Age"]);
cmd.ExecuteNonQuery();

1.刷新DataTable对象和GridControl以反映更改。

dt.Clear();
adapter.Fill(dt);
gridControl1.RefreshDataSource();

请注意,您应该处理在向SQL Server表中插入数据时可能发生的任何异常,还应确保在使用后处理所有数据库连接、命令和适配器。
希望这个有用。

相关问题