ArrayList hafiza = new ArrayList();
string sql = "";
sql = "SELECT koltuk_adi FROM Koltuk";
SqlCommand cmd = new SqlCommand(sql, baglanti);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
for (int i = 0; i <= hafiza.Count; i++)
{
hafiza[i]=(dr["koltuk_adi"].ToString());
}
}
String btn ="";
for (int j=0;j<=hafiza.Count ;j++)
{
for (int i=1;i<70;i++)
{
btn = "button"+i;
if(this.Controls[btn].Text == hafiza[j])
{
this.Controls[btn].BackColor = Color.DarkRed;
this.Controls[btn].Enabled = false;
}
Possible unintended reference comparison; to get a value comparison, cast the right hand side to type 'string' array...
我在if(this.Controls[btn].Text == hafiza[j])
行收到此错误。
答案 0 :(得分:2)
您正在将object
与string
进行比较。由于它们的类型不同,C#会比较它们的引用,这通常不是你想要的。 (在这种情况下,结果始终为false
)
使用List<string>
代替ArrayList
键入hafiza[j]
的值。
(请注意,您必须在Add
上使用List<T>
,而不是当前使用的数组作业)