cardDetailsID が 5 であると仮定します。
データベースの cardDetails テーブルのレコード番号 5 を見ると、他のフィールドに「bgcolour」と「borderstyle」が含まれていることがわかります。したがって、この特定のレコードについては、cardDetailsID = 5、bgcolour = 青、bordersytle= solid を取得しました。
cardDetailsID から bgcolour と bordersyle の設定 (青と実線) を取得できるようにしたいと考えています。
これがこれまでのコードです。クエリ文字列の値は機能しています (番号「5」が渡されています) が、行の残りの設定を取得するにはどうすればよいですか?
cardDetailsIDrv.Text = Request.QueryString["cardDetailsID"];
cardDetailsIDrv.Visible = false;
//create Connection
SqlConnection myConnection = new SqlConnection(ConfigurationManager.AppSettings["ConnString"]);
//create Command
SqlCommand getCardDetailsCMD = new SqlCommand("SELECT * FROM cardDetails WHERE cardDetailsID =" + Convert.ToInt32(cardDetailsIDrv.Text), myConnection);
myConnection.Open();
//create datareader
SqlDataReader myReader = getCardDetailsCMD.ExecuteReader();
//code works properly up till here
try
{
//Using DataReader to retrieve info from the database and display it on the panel
while (myReader.Read())
{
//I'm guessing here is where I'm messing things up
pnlCardps.BackColor = Color.FromName(myReader["bgcolour"].ToString());
pnlCardps.BorderStyle = (BorderStyle)Enum.Parse(typeof(BorderStyle), myReader["borderstyle"].ToString());
}
}
finally
{
if (myReader != null)
{
myReader.Close();
}
if (myConnection != null)
{
myConnection.Close();
}
}
問題が解決しました!!私がしなければならなかったのは、while ループのコードを次のように微調整することだけです。
string bgColour = myReader["bgColour"].ToString();
pnlCardrv.BackColor = Color.FromName(bgColour);
string borderColour = myReader["borderColour"].ToString();
pnlCardrv.BorderColor = Color.FromName(borderColour);