を使用し、使用ExecuteReader()しないでくださいExecuteNonQuery()。ExecuteNonQuery()影響を受けた行数のみを返します。
try
{
SqlDataReader dr = cmd1.ExecuteReader();
}
catch (SqlException oError)
{
}
while(dr.Read())
{
string treatment = dr[0].ToString();
}
または、usingステートメントを使用してください。
using(SqlDataReader dr = cmd1.ExecuteReader())
{
while(dr.Read())
{
string treatment = dr[0].ToString();
}
}
ただし、列SqlCommandのみを返す場合は、メソッドを使用できます。次のように、最初の行の最初の列を返します。1ExecuteScalar()
cmd.CommandText = "SELECT treatment FROM appointment WHERE patientid = " + text;
string str = Convert.ToString(cmd.ExecuteScalar());
また、 SQL インジェクションに対してコードを開くこともできます。常にパラメーター化されたクエリを使用します。Jeff は、 Give me parameterized SQL, or give me Deathというクールなブログ記事を書いています。よくお読みください。DotNetPerl SqlParameter の記事もお読みください。SQL インジェクションは、クエリを実行するときに非常に重要です。