【问题标题】:Not able to perform insert query operation无法执行插入查询操作
【发布时间】:2018-01-28 18:51:04
【问题描述】:

我正在使用基于服务的数据库在 c# 中完成我的简单任务。我有一个基于服务的数据库,其中有表 staff,其中包含 id、name 和 password 列。我正在尝试使用 C# 代码将新记录插入到该表中,但它没有插入,只是告诉我“没有添加记录”,即使没有错误。

我的代码是:

private void button5_Click(object sender, EventArgs e)
{
    try
    {
        connetionString = Properties.Settings.Default.testdbConnectionString;
        cnn = new SqlConnection(connetionString);

        cnn.Open();

        SqlCommand command6;
        string sql6 = null;
        sql6 = "insert into staff (name,pwd,id) values(@n,@p,@fid)";

        command6 = new SqlCommand(sql6, cnn);
        command6.Parameters.AddWithValue("@n", "jhon");
        command6.Parameters.AddWithValue("@p", "test");
        command6.Parameters.AddWithValue("@fid", 1);

        int result = command6.ExecuteNonQuery();

        if (result == 0)
        {
            MessageBox.Show("Record ADDED");
        }
        else
        {
            MessageBox.Show("No Record ADDED");
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.ToString());
    }
}

如果您需要更多详细信息,请更正我的错误。谢谢

【问题讨论】:

  • Sock puppet account。或许您可以阅读How to Ask 并通过tour 了解如何提出好问题并节省创建多个帐户的时间
  • @Plutonix 我的问题有什么问题吗?任何不完整的细节?

标签: c# sql


【解决方案1】:

ExecuteNonQuery 的结果是受影响的记录数。你的if 语句是错误的……如果结果等于0,那么被插入了

【讨论】:

  • 还是同样的问题,现在我手动检查的表中插入了新行
  • 但是如果你说你从上面的代码中看到“没有添加记录”,这意味着 ExecuteNonQuery 的结果不为零......来自 MSDN:“针对连接并返回受影响的行数”
  • 让忘记消息框的结果只是告诉他为什么不插入值?
  • 恐怕我只能对发布的内容发表评论,从上面的代码和您对观察结果的描述来看,应该已经添加了一行。当您使用的 API 提示其他情况时,尝试确定为什么没有添加行并不容易。
  • 选择查询工作正常,而插入查询有这个愚蠢的问题,是不是在从 project\testdb.mdf 选择时存储新行的问题是在 bin\debug\testdb.mdf 中
猜你喜欢
  • 2015-06-27
  • 2011-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-23
相关资源
最近更新 更多