0

好吧,我是 T-SQL 的新手,我正在尝试让我的插入方法工作。我得到的错误是我的插入方法中的未知构造函数。我不确定为什么会出现错误,我确定我没有正确引用某些内容。先谢谢你了!

SqlConnection dbConn = null;
LabelData LadelList = new LabelData();

try
{
   using (dbConn = new SqlConnection(Properties.Settings.Default["connectionname"].ToString()))

       LabelData addNewVersion = new LabelData(@"INSERT INTO PackLabelVersion (VersionID, VersionNumber, FormatID) VALUES (@VersionID, @VersionNumber, @FormatID)", dbConn);
       addNewVersion.Parameters.AddWithValue("@VersionID", VersionID);
       addNewVersion.Parameters.AddWithValue("@VersionNumber", VersionNumber);
       addNewVersion.Parameters.AddWithValue("@Quantity", FormatID);

       dbConn.Open();
       addNewVersion.ExecuteNonQuery();
}
catch (Exception ex)
{
   throw ex;
}
4

3 回答 3

5

你不需要LabelData,相反它应该是SqlCommand

SqlCommand addNewVersion = new SqlCommand (@"INSERT INTO PackLabelVersion (VersionID,VersionNumber,FormatID) VALUES (@VersionID,@VersionNumber,@FormatID)", dbConn);

您还需要定义using语句范围,目前它只考虑它下面的单个语句。

于 2013-11-06T21:26:54.480 回答
3

您的 using 语句没有围绕数据库连接的大括号。因此,它立即被处理掉。

SqlConnection dbConn = null;
LabelData LadelList = new LabelData();
try
{
    using (dbConn = new SqlConnection(Properties.Settings.Default["connectionname"].ToString()))
    {

        SqlCommand addNewVersion = new SqlCommand(@"INSERT INTO PackLabelVersion (VersionID,VersionNumber,FormatID) VALUES (@VersionID,@VersionNumber,@FormatID)", dbConn);
        addNewVersion.Parameters.AddWithValue("@VersionID", VersionID);
        addNewVersion.Parameters.AddWithValue("@VersionNumber", VersionNumber);
        addNewVersion.Parameters.AddWithValue("@Quantity", FormatID);
        dbConn.Open();
        addNewVersion.ExecuteNonQuery();
    }
}
catch (Exception ex)
{
    throw ex;
}

编辑..另外,您需要 SqlCommand 而不是 LabelData。(根据哈比卜)

于 2013-11-06T21:28:20.707 回答
0

您有语法错误,缺少 SqlCommand,并且未设置插入值。(恶性循环)

声明你的 sql 连接后

SqlConnection cnn = new SqlConnection(" enter your connection string here ");

把它写到下面的代码块中..它应该可以工作

     cnn.Open();
     SqlCommand cmd = new SqlCommand("INSERT INTO PackLabelVersion (VersionID,VersionNumber,FormatID) VALUES (@VersionID,@VersionNumber,@FormatID)", cnn);
     cmd.Parameters.AddWithValue("@VersionID", TextBox1.Text);
     cmd.Parameters.AddWithValue("@VersionNumber", TextBox2.Text);
     cmd.Parameters.AddWithValue("@FormatID", TextBox3.Text);
     cmd.ExecuteNonQuery();
     cnn.Close();
于 2013-11-06T21:34:54.497 回答