我有此代码,但有一个我无法解决的问题。我想在if条件下访问我的SQL Server表,但一直告诉我必须声明变量@thisuser
。谁能帮我吗?
private void btnPersonalInfo_Click(object sender, EventArgs e)
{
sqlcon.Open();
string query = "SELECT score1, score2, score3 FROM tblLogin WHERE username = @thisuser";
SqlCommand sda = new SqlCommand(query, sqlcon);
SqlDataReader da = sda.ExecuteReader();
if (thisuser == da.GetValue(1).ToString())
{
while (da.Read())
{
MessageBox.Show("Your Personal Info are: sda.GetValue(3).ToString()");
}
}
sqlcon.Close();
}
如果您仅需要从SQL DB中选择值为'thisuser'的用户名,则需要将该值放在单引号之间,因为这是常规的SQL字符串格式。
喜欢这个:
private void btnPersonalInfo_Click(object sender, EventArgs e)
{
sqlcon.Open();
string query = "SELECT score1, score2, score3 FROM tblLogin WHERE username = 'thisuser'";
SqlCommand sda = new SqlCommand(query, sqlcon);
SqlDataReader da = sda.ExecuteReader();
if (thisuser == da.GetValue(1).ToString())
{
while (da.Read())
{
MessageBox.Show("Your Personal Info are: sda.GetValue(3).ToString()");
}
}
sqlcon.Close();
}
如果您只需要从SQL DB中选择具有在C#代码中声明的值的用户名,则您需要这样编写查询字符串:>
private void btnPersonalInfo_Click(object sender, EventArgs e)
{
string thisuser = "example"; // example value
sqlcon.Open();
string query = "SELECT score1,score2,score3 FROM tblLogin WHERE username = '" + thisuser + "'";
SqlCommand sda = new SqlCommand(query, sqlcon);
SqlDataReader da = sda.ExecuteReader();
if (thisuser == da.GetValue(1).ToString())
{
while (da.Read())
{
MessageBox.Show("Your Personal Info are: sda.GetValue(3).ToString()");
}
}
sqlcon.Close();
}
您在内联查询中使用参数,但未传递参数