【问题标题】:Select and Insert query asp.net选择并插入查询 asp.net
【发布时间】:2018-03-13 19:40:40
【问题描述】:

我正在使用 asp.net 表单,我有一个选择查询并插入到查询中,但是如果我收到选择错误消息; “无效的条形码”;它仍在插入数据库中。我不确定如何合并所有内容;当用户收到错误信息时;它不应该被插入,但如果它成功,它会给他们一个成功的消息。

if (barcode.StartsWith("B"))
        {
            string Data = " select boxLocation from Box where boxNo= " + barcode.TrimStart('B') + "";
            cmd = new SqlCommand(Data, conn);
            dr = cmd.ExecuteReader();

            if (dr.Read())
            {

            lblResult.Text = dr[0].ToString();

        }
        else
        {
            lblError.Text = barcode + " does not exist!!";

        }
    }
if (barcode.StartsWith("B"))
    {
        command.CommandText = "insert into Crate_Box (crate_box_no,Current_Location,Previous_Location, Username,Date,status,codeType)values (@crate_box_no,@Current_Location,@Previous_Location, @Username,@Date,@status,@codeType) ";

        command.Parameters.Add("@crate_box_no", SqlDbType.NVarChar).Value = barcode.TrimStart('B');
        command.Parameters.Add("@Current_Location", SqlDbType.NVarChar).Value = location;
        command.Parameters.Add("@Previous_Location", SqlDbType.NVarChar).Value = lblResult.Text;
        command.Parameters.Add("@Username", SqlDbType.NVarChar).Value = user;
        command.Parameters.Add("@Date", SqlDbType.NVarChar).Value = date;
        command.Parameters.Add("@status", SqlDbType.NVarChar).Value = actType;
        command.Parameters.Add("@codeType", SqlDbType.NVarChar).Value = "Box";
    }

【问题讨论】:

  • 你的 if 条件是一样的......
  • @IrishChieftain;是的,但我只想在 if 语句中插入插入;消除相同的 if 语句
  • 使用 if/else?
  • @IrishChieftain;我不能使用 if else 因为我想要这两个查询?我不明白 if/else 会如何工作
  • @IrishChieftain 可以把insert和select放在一个if语句中

标签: asp.net


【解决方案1】:

试试下面的结构:

    if (barcode.StartsWith("B"))
    {
        try
        {
            // SELECT operation
            // INSERT operation
        }
        catch
        {
            lblError.Text = barcode + " does not exist!!";
        }
        finally
        {
            // Close DB connections and readers
        }
    }

【讨论】:

  • cmd = new SqlCommand(Data, conn);博士 = cmd.ExecuteReader(); if (dr.Read()) { 我要删除那个部分
  • 我给了你结构。您需要在 try 块中添加读取和插入的代码。我正在更新答案以包含一个 finally 块来释放您的资源。
猜你喜欢
  • 2016-01-28
  • 1970-01-01
  • 2013-11-20
  • 2018-10-07
  • 1970-01-01
  • 2014-10-17
  • 2016-08-26
  • 2014-09-01
  • 2013-11-23
相关资源
最近更新 更多