调试c#中VS与SQL Server之间的连接

本文关键字:Server 之间 连接 SQL VS 调试 | 更新日期: 2023-09-27 18:03:42

下面是我在过去几天里一直在编写的一段代码:

SqlConnection connectMOBILE = new SqlConnection("Server=OMADB03;Database=MOBILE;Trusted_Connection=True;");
string masterErrorString;
connectMOBILE.Open();
string stringIncorrectPassword = string.Concat(
            "SELECT SERVICE_ID, RESPONSE_DATA, DATE_ENTERED",
            "FROM WS_TRANSACTION",
            "WHERE SERVICE_ID = 'GETUSERTOKENLOGIN'");
SqlCommand commandIncorrectPassword = connectMOBILE.CreateCommand();
commandIncorrectPassword.CommandText = stringIncorrectPassword;
SqlDataReader reader = commandIncorrectPassword.ExecuteReader();
while (reader.Read())
     {
         masterErrorString = reader.ToString();
         BOAssistant.WriteLine(masterErrorString);
     }

这段代码使用了一个叫做BOAssistant的类,它的工作方式类似于Console.WriteLine,但它写的是一个日志文件。

这段代码应该做的是从我的查询中收集结果并将它们放在我的日志文件中,但是当我运行这个程序时,我得到以下错误消息:

System.Data.SqlClient。SqlException (0x80131904): SERVICE_ID附近语法错误。

大约有20多行,但这是最突出的一行。这是我第一次编写连接Visual Studio和SQL Server的程序,所以我想知道代码中是否有问题,或者我在代码中缺少了一些东西来建立更强的连接?现在代码中的内容是我在互联网上进行的研究的结果。另外,当我在SQL Server中运行查询时,它可以工作,所以我知道查询的语法是正确的。

调试c#中VS与SQL Server之间的连接

当您组合字符串时,您会得到不正确的SQL,因为缺少空格。string.Concat创建了这个查询:

SELECT SERVICE_ID, RESPONSE_DATA, DATE_ENTEREDFROM WS_TRANSACTIONWHERE SERVICE_ID = 'GETUSERTOKENLOGIN'

显然有一些空白

应该用空格来更新你的查询:

string stringIncorrectPassword = string.Concat(
        "SELECT SERVICE_ID, RESPONSE_DATA, DATE_ENTERED ",    // added space
        "FROM WS_TRANSACTION ",    // added space
        "WHERE SERVICE_ID = 'GETUSERTOKENLOGIN'");