将数据源绑定到数据网格视图
本文关键字:数据网 网格 视图 数据 数据源 绑定 | 更新日期: 2023-09-27 18:33:09
我在winform中使用.net 4.0 c#。现在,我使用存储过程向数据库中插入新行。显然,我对 asp.net 和窗口表单之间的绑定步骤感到困惑。在 asp.net 中,它非常简单,但在 winform 中,我们似乎必须使用 BindingSource 对象???
这意味着在知情中,我们必须使用不同的方式。以下代码是我曾经在 asp.net 中用来插入新记录和绑定的代码。如何重写它以将数据源绑定到数据网格视图。
public void ExecuteNonQuery(string storedProcedure, Dictionary<string, object> parameters)
{
using (SqlConnection conn = new SqlConnection(_connectionString))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(storedProcedure, conn))
{
cmd.CommandType = CommandType.StoredProcedure;
if (parameters != null)
{
foreach (string parameter in parameters.Keys)
{
cmd.Parameters.AddWithValue(parameter, parameters[parameter] ?? DBNull.Value);
}
}
cmd.ExecuteNonQuery();
}
conn.Close();
}
}
设置参数后,像这样调用它:
DBAccess dbaccess = new DBAccess(connString);
dbaccess.ExecuteNonQuery("InsertStoredProcedure", parameters);
我不知道如何将数据库绑定到数据网格视图。 谢谢。
如果将行插入到数据库,则需要再次从数据库中获取行。 使用另一个存储过程(使用 SELECT 查询)。
您正在使用 ExecuteNonQuery,这意味着您没有从数据库中查询任何内容。所以它不会以网格的形式给你结果。但它只会返回一个整数,其中的行数受到影响。
所以我的建议是在插入行后,编写另一个查询以使用 cmd.ExecuteReader() 获取行并将 SqlReader 对象绑定到 Grid。
我希望这将解决您的问题。