C#应用程序中的T-SQL插入方法

时间:2013-11-06 21:25:13

标签: c# sql sql-server-2008

好吧我是T-SQL的新手,我正在努力让我的插入方法起作用。我得到的错误是我的insert方法中的未知构造函数。我不知道为什么我有错误,我相信我确定没有正确引用。先谢谢你!

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

3 个答案:

答案 0 :(得分:5)

您不需要LabelData,而应该是SqlCommand

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

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

答案 1 :(得分: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。 (根据Habib)

答案 2 :(得分: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();