[英]SQL query works in SQL Server Management Studio but not from ASP.Net application
[英]Problem running SQL query in C # .NET even though the query works in microsoft sql server management studio
我收到此錯誤:
System.Data.SqlClient.SqlException: 'Incorrect syntax near the keyword 'BETWEEN'.'
這是我的查詢:
string alertsTableCOM = " SELECT distinct A.PM_CASE_NUMBER ,A.PM_PATIENT_NUMBER "
+" from [VW_ER_PatientCurrentInER] A"
+"WITH(ROWLOCK)"
+"INNER JOIN [NDOC] B on A.PM_CASE_NUMBER = B.FALNR"
+"INNER JOIN [N2PMDETEXT] C"
+"WITH(ROWLOCK)"
+"ON C.DOKNR = B.DOKNR AND C.DOKVR = B.DOKVR"
+"LEFT JOIN [Diagnosis_ER] E"
+"WITH(ROWLOCK)"
+"ON E.DOKNR = B.DOKAR and E.DOKVR = B.DOKVR"
+"AND(SUBSTRING(E.TA_DKEY1, 1, 3) "
+"BETWEEN @min AND @max"
+"OR SUBSTRING(E.TA_DKEY1, 1, 3) IN ('991', '993.4', '994.0', '994.8'))"
+"AND ISNUMERIC(E.TA_DKEY1)= 1"
+"AND PATINDEX('%.%',E.TA_DKEY1) = 4"
+"WHERE CONTENT LIKE '%נפל%' OR CONTENT LIKE '%חבלה%' AND E.TA_FALNR is null;
";
這是連接並執行查詢
connection.Open();
adap = new SqlDataAdapter(alertsTableCOM, connection);
adap.SelectCommand.Parameters.AddWithValue("@min", 800);
adap.SelectCommand.Parameters.AddWithValue("@max", 959);
ds = new DataSet();
records = ds.Tables["alertsTable"];
adap.Fill(ds, "alertsTable");
records = ds.Tables["alertsTable"];
我嘗試了另一個查詢並且它有效..問題是我怎么知道錯誤是什么? 謝謝
如果查詢在 MSSQL 中運行良好,您可以嘗試使用 Add() 方法而不是 AddWithValue 來指定傳遞變量的類型。
adap = new SqlDataAdapter("YOUR SELECT STATEMENT", connection);
adap.SelectCommand.Parameters.Add(new SqlParameter
{
ParameterName = "@min",
Value = 800,
SqlDbType = SqlDbType.Int
});
adap.SelectCommand.Parameters.Add(new SqlParameter
{
ParameterName = "@max",
Value = 959,
SqlDbType = SqlDbType.Int
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.