简体   繁体   English

从数据库检索值并将其分配给字符串变量C#

[英]retrieve value from database and assign it in to string variable C#

I want to retrieve value from table. 我想从表中检索值。 Please guys help me. 请大家帮我。 The thing is I want to get that value and check it with a string value. 问题是我想获取该值并使用字符串值进行检查。

this code is not working: 该代码不起作用:

SqlCeCommand cmd1 = new SqlCeCommand("SELECT username FROM tmpusername WHERE _id=1", connection);

SqlCeDataReader usernameRdr = null;

usernameRdr = cmd1.ExecuteReader();

while (usernameRdr.Read()){
    string username11 = usernameRdr["username11"].ToString(); 
}

use username for accessing column. 使用username访问列。

string username11 = usernameRdr["username"].ToString(); 

Your select command is specifying Select username and later you are accessing it using username11 . 您的select命令指定“ Select username ,稍后您将使用username11对其进行访问。 That is why you are not getting the value, instead you should be getting an exception. 这就是为什么您没有获得价值,而是应该获得例外的原因。

Change it to be : 将其更改为:

string username11 = usernameRdr["username"].ToString(); 

The data reader indexer takes the name of the column in the SQL result set which is "SELECT username ..." in your SQL query. 数据读取器索引器采用SQL结果集中的列名称,即SQL查询中的“ SELECT 用户名 ...”。

You may want to see if dataReader returns any rows first, to prevent null value returns from the database which may cause NullReferenceException so use the following; 您可能想查看dataReader是否首先返回任何行,以防止可能导致NullReferenceException的数据库返回null值,因此请使用以下代码;

string username11=string.empty; 字符串username11 = string.empty;

 if (usernameRdr.hasRows) { while (reader.Read()) { username11=usernameRdr["username"].ToString(); } } 

用于处理空值更改为

string username11 = Convert.ToString(usernameRdr["username"]); 
string username11 = (string)usernameRdr["username"];

您输入了错误的列名username11而不是username

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM