从C#写入sql server,没有返回错误

时间:2012-02-13 23:53:35

标签: c# sql sql-server-2008

我正在尝试从c#写入数据库:

using (SqlConnection connection = new SqlConnection())
{
    try
    {
        connection.ConnectionString = "Data Source=nesoi;Initial Catalog=SalesDWH;Integrated Security=True";

        // This creates an object with which you can execute sql
        using (SqlCommand command = connection.CreateCommand())
        {
            command.CommandText = @"INSERT INTO [SalesDWH].[dbo].[PendingSpecimens]
                                                       ([Date Entered]
                                                       ,[Specimen ID]
                                                       ,[Test]
                                                       ,[Agency])
                                    VALUES (@DateEntered,@SpecimenID,@Test,@Agency)";
            command.CommandType = CommandType.Text;

            // This is how you add a parameter to your sql command
            // This way you are protected against SQL injection attacks
            SqlParameter DateEntered = command.CreateParameter();
            DateEntered.ParameterName = "@DateEntered";
            DateEntered.Value = fields[0];
            command.Parameters.Add(DateEntered);

            SqlParameter SpecimenID = command.CreateParameter();
            SpecimenID.ParameterName = "@SpecimenID";
            SpecimenID.Value = fields[1];
            command.Parameters.Add(SpecimenID);

            SqlParameter Test = command.CreateParameter();
            Test.ParameterName = "@Test";
            Test.Value = fields[2];
            command.Parameters.Add(Test);

            SqlParameter Agency = command.CreateParameter();
            Agency.ParameterName = "@Agency";
            Agency.Value = fields[4];
            command.Parameters.Add(Agency);

            connection.Open();

            int someint=command.ExecuteNonQuery();
        }
    }
    catch(Exception ee)
    {
        textBox1.Text = ee.ToString();
    }

除了没有返回任何错误之外,它还没有写任何内容!

我做错了什么?

我怀疑这一行:

command.ExecuteNonQuery();

无效。

Mut我不明白为什么

请帮忙!

2 个答案:

答案 0 :(得分:1)

也许你错过了values子句中的括号?

答案 1 :(得分:1)

试试这个:

using (SqlConnection connection = new SqlConnection("Data Source=nesoi;Initial Catalog=SalesDWH;Integrated Security=True"))
{
    string queryString = "INSERT INTO SalesDWH.dbo.PendingSpecimens([Date Entered], [Specimen ID], Test, Agency) VALUES (" + fields[0] + ", " + fields[1] + ", " + fields[2] + ", " + fields[4] + ")";
    SqlCommand command = new SqlCommand(queryString, connection);
    command.Connection.Open();
    command.ExecuteNonQuery();
}