所以基本上我有一个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/

10-09 21:34