所以基本上我有一个SQL Server。我有4列。我将在此处设计该表:
varchar varchar int varchar
account password gmlevel pics
test test 3 url
首先,我的方法检查输入的帐户和密码是否相等(登录查询)。
然后,我想检查“测试”帐户对此具有高访问权限(gmlevel),然后将其保存到变量中。
它需要是两个查询。但是gmlevel记录对我的程序非常重要,并且根本不起作用。
这是我的联系:
private void gmset ()
{
if (loggedin == true) {
try
{
using (var con2 = new SqlConnection())
{
string user = login.felhasz;
string query2 = "SELECT * FROM accounts WHERE account=@acc";
con2.ConnectionString = "connection string";
con2.Open();
var cm2 = new SqlCommand(query2, con2);
cm2.Parameters.AddWithValue("@acc", user);
SqlDataReader dr2 = cm2.ExecuteReader();
while (dr2.HasRows)
{
MessageBox.Show("ASD");
}
}
}
catch (Exception exe)
{
MessageBox.Show(exe.Message);
}
}
else {
MessageBox.Show("Failed!");
}
该代码不包含任何可用于获取GMLevel的内容。我已经尝试了很多事情,但是一天前我一直在寻找答案,但还是没有。
/对不起,我想问更多问题,但我越来越接近解决方案
最佳答案
您可以调用Read()
方法获取gmlevel。
尝试这个:
int GameLevel;
while (dr2.Read())
{
int.TryParse(dr2["gmlevel"].ToString(),out GameLevel);
MessageBox.Show("ASD");
}
编辑:我怀疑控件未进入while循环。
试试看:用以下
while
块替换/注释您的if-else
循环并查看结果 if(dr2.Read())
{
MessageBox.Show("Record Found");
}
else
{
MessageBox.Show("Record Not Found!!!");
}
关于c# - C#和SQL:选择一行,将列数据获取到变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22283654/