下面是我这几天一直在处理的一段代码:
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): Incorrect syntax near 'SERVICE_ID'.
大约有 20 多行,但这是最突出的一行。这是我第一次编写连接 Visual Studio 和 SQL Server 的程序,所以我想知道代码中是否有问题,或者我的代码中缺少某些东西来建立更牢固的连接?现在代码中的内容是我在互联网上进行的研究的结果。此外,当我在 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'");
关于c# - 调试 C# 中的 VS 与 SQL Server 之间的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31522174/