我有一个gridcontrol,我想从数据库中获取数据。 我将数据源添加到网格,但列名不是我想要的。因此,我打开xsd数据源文件并在configure选项上编辑列名。
我更改了查询并写了select namesurname [NAME SURNAME] from employees
在此之后,我想要这个;当我编辑这个gridcontrol时,我按下保存按钮并在数据库上更新这些列,如tableadapter.update(..)
但我的更新不起作用。我认为这是因为;我以前用'命名' ([NAME SURNAME])。
因为当我没有像这样编辑列名时,更新正在运行。
答案 0 :(得分:2)
无需更改数据库中的列名。您可以在C#中定义列名。
我对您的问题的最佳答案是,使用 DataTable 。 没有必要从数据库中获取整个表格,以便将其放在 GirdControl 上。
您应该创建字符串查询或 StoredProcedure (sql-server)并从数据库中读取每个返回的行。
首先我们创建一个 DataTable
DataTable dt=new DataTable();
然后定义表列名称。
dt.Columns.Add("name1");
dt.Columns.Add("name2");
dt.Columns.Add("name3");
最终开始从数据库中获取数据(StoredProcedure)
try
{
using (SqlConnection con = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand("myStoredProcedure"))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@param1", value1);
cmd.Parameters.AddWithValue("@param2", value2);
cmd.Parameters.AddWithValue("@param3", value3);
cmd.Connection = con;
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
DataRow dr = dt.NewRow();
dr[0] = reader[0].ToString();
dr[1] = reader[1].ToString();
dr[2] = reader[2].ToString();
dt.Rows.Add(dr);
}
return true;
}
}
}
}
catch(Exception e)
{
return false;
}
总之,我们有一个完整的表来展示