2016-04-22 65 views
0

我需要在C#中设置来自SQL中简单查询的变量。 我有以下代码:如何在c#中查询设置字符串中的值?

String _sFirstNameQuery = ""; 
string sql = "SELECT Firstname FROM EnrollmentDB WHERE SessionID Like 'cc7b87e4c1074d93bfad451ae10eb3b0'"; 
using (conn) 
{ 
    SqlCommand cmd = new SqlCommand(sql, conn); 
    cmd.Parameters.Add("@Firstname", SqlDbType.VarChar); 
    try 
    { 
     conn.Open(); 
     _sFirstNameQuery = (String)cmd.ExecuteScalar(); 
    } 
    catch (Exception ex) 
    { 
     Console.WriteLine(ex.Message); 
    } 

我需要的是按照我需要的查询设置一个字符串变量。 有人可以帮我解决吗?当我调试的结果为空

enter image description here

+0

'_sFirstNameQuery =(字符串)cmd.ExecuteScalar();'错误的方式,谷歌如何使用'SqlDataReader' –

+0

我不明白你的问题。您已经_do __FirstNameQuery'设置为返回的字符串。问题是什么? –

+0

如果结果为空,那么问题在于您的查询。您正在使用正确的方法。 – CathalMF

回答

0

您正确地接近它,但你正在做的事情奇与参数。您没有任何参数,因此不需要@FirstName行。

String _sFirstNameQuery = ""; 
string sql = "SELECT Firstname FROM EnrollmentDB WHERE SessionID Like 'cc7b87e4c1074d93bfad451ae10eb3b0'"; 
using (conn) 
{ 
    SqlCommand cmd = new SqlCommand(sql, conn); 

    try 
    { 
     conn.Open(); 
     _sFirstNameQuery = (String)cmd.ExecuteScalar(); 
    } 
    catch (Exception ex) 
    { 
     Console.WriteLine(ex.Message); 
    } 
+0

是的,你是对的!我不得不摆脱那个cmd.Parameters.Add(“@ Firstname”,SqlDbType.VarChar); 尝试 – Lanshore

+0

@lanshore不要忘记标记为正确的答案和upvote – CathalMF