C# 将sql语句中的值存储在变量中

C# 将sql语句中的值存储在变量中,c#,sql,ado.net,C#,Sql,Ado.net,我的用户使用用户名和密码登录,如果他存在,我会检查数据库 我想在连接之后,从连接的用户那里获取UserID,并将其放入一个变量中,以后我可以在我的程序中使用该变量 我的表格用户和我的两个函数。我没有添加所有的代码,因为我认为这是不必要的 +-----------------------------------------+ | User | +------------+------------+---------------

我的用户使用用户名和密码登录,如果他存在,我会检查数据库
我想在连接之后,从连接的用户那里获取UserID,并将其放入一个变量中,以后我可以在我的程序中使用该变量


我的表格用户和我的两个函数。我没有添加所有的代码,因为我认为这是不必要的


+-----------------------------------------+
|    User                                 |
+------------+------------+---------------+
| UserID     | Username   | password      |
| 1          | abc        |  def          |
| 2          | ghi        |   jkl         |
+------------+------------+---------------+
选中此项:

var ID = (int)cmd.ExecuteScalar();

这应该有帮助

将登录中的
返回0
更改为

return dt.Row[0]["ID"];
然后在
按钮1中单击

userId = Login(...)

不知道你想要什么。你能解释一下“存储在变量中”是什么意思吗?因为这取决于要使用该值的内容和位置。您的意思是要添加一个全局变量以检查该变量,而不是连接数据库进行验证?抱歉,连接后,我想从连接的用户处获取用户ID,以便能够在其他地方使用它。在另一种形式中,我需要在一个需要userid的表中更新我的数据库,无意冒犯,但是代码太乱了。1) 您应该使用配置文件来存储连接字符串。2) 密码不应以明文形式保存在后端数据库中。3) 实现IDisposable的类应该以某种方式被释放。4) 抓住错误并马上扔掉有什么意义?这一清单还在继续。不管怎样,为什么要填充数据表?为什么不直接从DataReader获取信息?顺便说一下,您可以将信息存储在成员字段中,然后在同一类的其他函数中使用它。
userId = Login(...)