可以';t将数据插入数据库

本文关键字:数据 插入 数据库 可以 | 更新日期: 2023-09-27 18:29:22

我似乎无法将数据插入数据库。我想知道我是否正确使用了SCOPE_IIDENTITY。我只想将这些数据插入到我的数据库中,而不必手动键入PurchOrderId。

在我的BllPurchaseOrder.cs文件中:

public int InsertPO(String PurchName, String PurchDesc, int SuppId)
    {
        StringBuilder sql;
        SqlCommand sqlCmd;
        int result;
        result = 0;
        sql = new StringBuilder();
        sql.AppendLine("INSERT INTO PurchaseOrder(PurchName, PurchDesc, SuppId, CreateDate, SentStatus)");
        sql.AppendLine(" ");
        sql.AppendLine("VALUES (@PurchName, @PurchDesc, @SuppId, @CreateDate, @SentStatus)");
        sql.AppendLine(" ");
        sql.AppendLine("SELECT CAST(scope_identity() AS int)");
        sql.AppendLine(" ");
        SqlConnection conn = dbConn.GetConnection();
        try
        {
            sqlCmd = new SqlCommand(sql.ToString(), conn);
            sqlCmd.Parameters.AddWithValue("@PurchName", PurchName);
            sqlCmd.Parameters.AddWithValue("@PurchDesc", PurchDesc);
            sqlCmd.Parameters.AddWithValue("@CreateDate", DateTime.Now);
            sqlCmd.Parameters.AddWithValue("@SuppId", SuppId);
            sqlCmd.Parameters.AddWithValue("@SentStatus", "Sent");
            result = sqlCmd.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            errMsg = ex.Message;
        }
        finally
        {
            conn.Close();
        }
        return result;
    }

在我的InsertPO.aspx中:

int result = 0;
        string PurchName = tbPurchName.Text;
        string PurchDesc = tbPurchDesc.Text;
        int SuppName = int.Parse(ddlSuppName.SelectedValue);
        BllPurchaseOrder po = new BllPurchaseOrder();
        result = po.InsertPO(PurchName, PurchDesc, SuppName);
        if (result > 0)
        {
            Response.Write("<script>alert('Insert Successful!'); </script>");
            Response.Redirect("~/ViewAllPO.aspx");
        }
        else
        {
            Response.Write("<script>alert('Insert NOT Successful'); </script>");
        }

可以';t将数据插入数据库

使用ExecuteScalar而不是ExecuteNonQuery,因为您选择的是要返回的值。

看来您的代码很好,应该可以工作,

但问题是你忘了打开连接。

所以请打开连接。

谨致问候。