如何获取SQL代码生成并返回代码

时间:2014-01-13 22:38:31

标签: c# asp.net sql

我正在执行非查询SQL。我想知道我们在Visual Studio 2013中的位置,以查看生成的SQL和错误代码。

    string cmdText = "UPDATE RendezVous SET  
          nomClientEssai=@nomClientEssai,prenomClientEssai=@prenomClientEssai,
          IsAvailable=@IsAvailable WHERE rdvId=@rdvId";

     SqlCommand cmd = new SqlCommand(cmdText, con);

    cmd.Parameters.AddWithValue("@nomClientEssai", Convert.ToString(Session["nom"]));
    cmd.Parameters.AddWithValue("@prenomClientEssai", Convert.ToString(Session["prenom"]));
    cmd.Parameters.AddWithValue("@IsAvailable", "False");

    cmd.Parameters.AddWithValue("@rdvId", cleRdvId);

    if (con.State == ConnectionState.Closed)
    {
        con.Open();
    }

    cmd.ExecuteNonQuery();    <===  I want to see the sql return code here !!!
    con.Close();

这个SQL没有更新我的表,我想知道为什么,知道如何验证SQL语句以及SQL返回码。我没有生成任何错误,但没有任何更新。

4 个答案:

答案 0 :(得分:2)

如果您想查看数据库的内容,请使用SQL事件探查器

答案 1 :(得分:1)

ExecuteNonQuery returns the number of rows affected

因此,请按照以下方式更新您的代码,并查看numberOfRecordsUpdated语句UPDATE中的内容。

int numberOfRecordsUpdated = comm.ExecuteNonQuery();

答案 2 :(得分:1)

要从数据库获取有关错误或简单输出的信息(sql server中严重性小于或等于10的任何内容),您可以订阅SqlConnection的事件。这是一个简单的例子:

con.InfoMessage += new SqlInfoMessageEventHandler((sender, a) => { Console.WriteLine(a.Message);});

答案 3 :(得分:0)

UPDATE没有返回代码。如上所述,ExecuteNonQuery会返回受影响的记录的,但它不会告诉您为什么会影响这些记录数。

我会在调试器中运行它来验证正在使用cleRdvId的正确值。