WebサービスでSQL Serverから複数の行を取得したい。繋ぎ番号1を検索してテーブル名がTestOrderStatus
のとき、結果として2行が得られます。Webサービスとxamarin androidのSQL Serverから複数の行を取得しますか?
検索結果に1行しか表示されません。すべて
public class ReturnOrder
{
public string Message;
public int QtqSlit;
public int QtyPcs;
public string Design;
}
[WebMethod(MessageName = "OrderStatus", Description = "OrderStatus new Order")]
[System.Xml.Serialization.XmlInclude(typeof(ReturnOrder))]
public ReturnOrder OrderStatus(string JO) /// get list of notes
{
int QtqSlit = 0;
int QtyPcs = 0;
String Design = "";
string Message = "";
SqlDataReader reader;
using (SqlConnection connection = new SqlConnection(DBConnection.ConnectionString))
{
SqlCommand cmd = new SqlCommand("SELECT QtqSlit,QtyPcs,Design FROM TestOrderStatus where [email protected]");
cmd.CommandType = CommandType.Text;
cmd.Connection = connection;
cmd.Parameters.AddWithValue("@JO", JO);
connection.Open();
reader = cmd.ExecuteReader();
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
QtqSlit = reader.GetInt32(0);
QtyPcs = reader.GetInt32(1);
Design = reader.GetString(2);
}
}
if (QtqSlit == 0)
{
Message = " user name or password is incorrect";
}
reader.Close();
connection.Close();
}
ReturnOrder rt = new ReturnOrder();
rt.Message = Message;
rt.QtqSlit = QtqSlit;
rt.QtyPcs = QtyPcs;
rt.Design = Design;
return rt;
}
コード パブリッククラスReturnOrder {パブリック文字列メッセージの残りの部分。 public int QtqSlit; public int QtyPcs; public string design; } –
まず、内部forループは必要ありません。これにより、現在のレコードの3つのフィールドが3回読み込まれます。 1つで十分です。 2番目のwhileループは、最初のループ(最初のレコード)の後に再度実行され、最初のループにロードされた値を置き換えます(3つのレコードがある場合は、再度実行されます)。あなたはただ一つのレコードで終わり、最後のものは – Steve