0

我在 winform 中使用 .net 4.0 c#。现在我使用存储过程向数据库中插入新行。显然,我对 asp.net 和 windows 窗体之间的绑定步骤感到困惑。在 asp.net 中它非常简单,但在 winform 中似乎我们必须使用BindingSource对象???

这意味着在winform中我们必须使用不同的方式。下面的代码是我在asp.net中用来插入新记录和绑定的。如何重写它以将数据源绑定到 datagridview。

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);

我不知道如何将数据库绑定到 datagridview。谢谢。

4

1 回答 1

0

如果您将行插入数据库,则需要再次从数据库中获取行。使用另一个存储过程(使用 SELECT 查询)。

您正在使用 ExecuteNonQuery,这意味着您没有从数据库中查询任何内容。所以它不会以网格的形式给你结果。但它只会返回一个整数,其中包含受影响的行数。

所以我的建议是在插入行之后,编写另一个查询以使用 cmd.ExecuteReader() 获取行并将 SqlReader 对象绑定到 Grid。

我希望这能解决你的问题。

于 2012-05-04T20:55:27.283 回答