asp.net Webservice에 4 개의 매개 변수를 전달합니다.오류 : "데이터 형식을 nvarchar를 숫자로 변환하는 중 오류 발생"
WEBMETHOD :
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[WebMethod]
public List<RaumHelper.RAUM> Raum(string RAUMKLASSE_ID, string STADT_ID, string GEBAEUDE_ID, string REGION_ID)
{
return RaumHelper.Raum(RAUMKLASSE_ID, STADT_ID, GEBAEUDE_ID, REGION_ID);
}
Helperclass이 지금까지 내 코드입니다
public class RaumHelper
{
public class RAUM
{
public string RaumName { get; set; }
public string RaumID { get; set; }
}
internal static List<RAUM> Raum(string RAUMKLASSE_ID, string STADT_ID, string GEBAEUDE_ID, string REGION_ID)
{
List<RAUM> strasseObject = new List<RAUM>();
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 = @Raumklasse_ID OR STADT_ID = @Stadt_ID OR GEBAEUDE_ID = @Gebaeude_ID OR REGION_ID = @Region_ID", con))
{
con.Open();
cmd.Parameters.AddWithValue("@Raumklasse_ID", RAUMKLASSE_ID);
cmd.Parameters.AddWithValue("@Stadt_ID", STADT_ID);
cmd.Parameters.AddWithValue("@Gebaeude_ID", GEBAEUDE_ID);
cmd.Parameters.AddWithValue("@Region_ID", REGION_ID);
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;
}
}
내가 WEBMETHOD는 4 개 매개 변수와 함께,이 방법은 잘 작동하는지 호출하는 I가의 목록을 얻을 경우 RaumName과 RaumID. 하지만 하나만 넣으면 매개 변수 iam에 오류가 발생합니다.
System.Data.SqlClient.SqlException: Error converting data type nvarchar to numeric.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlDataReader.HasMoreRows()
at System.Data.SqlClient.SqlDataReader.ReadInternal(Boolean setTimeout)
at System.Data.SqlClient.SqlDataReader.Read()
데이터베이스의 ID는 숫자로 저장되고 문자열은 전달됩니다. 나는 이것이 문제라고 생각한다. 그러나 나는 이것을 어떻게 고칠 지 모른다.
내 검색어가 두 개 또는 세 개의 입력 된 매개 변수에도 적용되기를 바랍니다.
감사합니다.
데이터 유형 및 기본 값을 정의 좋아하세요 매개 변수, 문제를 해결한다. –
WebMethod는 어디에 있습니까? 누락 된 매개 변수에 대한 기본값이 있습니까? –