0

私は次のWebサービスとSQLクエリを持っています:

  public class DIENSTLEISTUNG
        {
            public string DienstleistungName { get; set; }
            public string DienstleistungArtBezeichnung { get; set; }
        }

        internal static List<DIENSTLEISTUNG> Dienstleistung(string RAUM_ID)
        {
            List<DIENSTLEISTUNG> BestuhlungObject = new List<DIENSTLEISTUNG>();

using (SqlConnection con = new SqlConnection(@"Data Source=Localhost\SQLEXPRESS;Initial Catalog=BOOK-IT-V2;Integrated Security=true;"))
            using (SqlCommand cmd = new SqlCommand(@"
                                       SELECT
                                       DISTINCT dl.NAME AS NAME, da.BEZEICHNUNG AS BEZEICHNUNG
                                       FROM RAUM r
                                       RIGHT JOIN DIENSTLEISTUNG_Raum bs ON bs.RAUM_ID = (" + Room_ID + ") 
                                       RIGHT JOIN DIENSTLEISTUNG ba ON bs.DIENSTLEISTUNG_ID = ba.ID 
                                       RIGHT JOIN DIENSTLEISTUNGSART da ON ba.DIENSTLEISTUNGSART_ID = da.ID
                                       RIGHT JOIN DIENSTLEISTER dl ON da.DIENSTLEISTER_ID = dl.ID", con))

            {
                con.Open();
                using (SqlDataReader rdr = cmd.ExecuteReader())
                {
                  while (rdr.Read())
                    {
                        if (rdr["NAME"] != DBNull.Value && rdr["BEZEICHNUNG"] != DBNull.Value)
                        {

                            BestuhlungObject.Add(new DIENSTLEISTUNG()
                               {                                                                                                                                      
                                DienstleistungName = rdr["NAME"].ToString(),
                                DienstleistungArtBezeichnung = rdr["BEZEICHNUNG"].ToString()
                             });

                        }

                    }
                }
            }
            return BestuhlungObject;
        }

    }
}

このWebサービスは魅力のように機能しています。1つのRoom_ID=219を送信して、期待される出力を取得できます。私の質問は、コンマで区切られた複数のRoom_IDを送信するにはどうすればよいですか。例:Room_ID = 219、220、221

誰かがそれを手伝ってくれませんか?

前もって感謝します

4

1 に答える 1

1

複数のID値を受け入れるT-SQLストアドプロシージャを参照してください

パラメータをxmlとして渡すことができる場合は、多くの方法の1つ(MS SQL 2005以降):

var sql =
    @"SET ARITHABORT ON;
    SELECT ...  
    RIGHT JOIN DIENSTLEISTUNG_Raum bs ON bs.RAUM_ID IN
    (
        SELECT tbl.col.value('.', 'varchar(20)')
        FROM @xml.nodes('id') as tbl(col)
    ) ...";
SqlCommand cmd = new SqlCommand(sql, connection);
cmd.Parameters.Add("@xml", SqlDbType.Xml).Value = "<id>111</id><id>222</id><id>333</id>";

または、パラメータを次のように渡すことができる場合は、LIKEを使用します,aaa,bbb,ccc,(挿入を避けるためにLIKE引数の順序に注意してください)

var sql =
    @"SELECT ...    
    RIGHT JOIN DIENSTLEISTUNG_Raum bs ON @ids LIKE '%,' + bs.RAUM_ID + ',%'
    ...";
SqlCommand cmd = new SqlCommand(sql, connection);
cmd.Parameters.Add("@ids", SqlDbType.VarChar).Value = ",111,222,333,";
于 2012-06-29T20:24:47.080 に答える