ASP.Net에 웹 서비스를 구축하여 방 목록을 보냅니다.SQL 쿼리에 대한 매개 변수를 선택적으로 설정하는 방법은 무엇입니까?
매개 변수는 쉼표로 구분 된 ID입니다.
문자열에 저장하고 SQL select 쿼리를 작성했습니다.
모든 매개 변수를 보내면 모든 것이 잘 작동하고 결과가 나타납니다. 하지만 4 개 미만을 보내면 오류가 발생합니다.
System.Data.SqlClient.SqlException: Incorrect syntax near ')'.
입력 한 값만 선택하도록 SQL 쿼리에서 선택적 매개 변수를 설정하려면 어떻게해야합니까? 당신의 도움에 미리
internal static List<RAUM> Raum(string RAUMKLASSE_ID, string STADT_ID, string GEBAEUDE_ID, string REGION_ID)
{
List<RAUM> strasseObject = new List<RAUM>();
string raumklasseid = RAUMKLASSE_ID;
string gebaudeid = GEBAEUDE_ID;
string stadtid = STADT_ID;
string regionid = REGION_ID;
using (SqlConnection con = new SqlConnection(@"Data Source=Localhost\SQLEXPRESS;Initial Catalog=BOOK-IT-V2;Integrated Security=true;"))
using (SqlCommand cmd = new SqlCommand(@"SELECT r.BEZEICHNUNG AS BEZEICHNUNG, r.ID AS ID FROM RAUM r WHERE RAUMKLASSE_ID IN (" + raumklasseid + ") AND STADT_ID IN (" + stadtid + ") AND GEBAEUDE_ID IN (" + gebaudeid + ") AND REGION_ID IN (" + regionid + ")", con))
{
con.Open();
using (SqlDataReader rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
if (rdr["BEZEICHNUNG"] != DBNull.Value && rdr["ID"] != DBNull.Value)
{
strasseObject.Add(new RAUM()
{
RaumName = rdr["BEZEICHNUNG"].ToString(),
RaumID = rdr["ID"].ToString()
});
}
}
}
}
return strasseObject;
}
감사 :
여기에 지금까지 내 코드입니다.
는이있을 수 있습니다 예를 들어, 쿼리를 덤프 : "... RAUM r에서 RAUMKLASSE_ID IN() ... "이 (가) 잘못되었습니다. 매개 변수에 값이있는 경우에만 각 제한을 추가해야합니다. –
무슨 뜻인지 모르겠다. 더 자세히 설명해 주시겠습니까? –
일부 코드와 함께 답변을 추가했습니다. –