查询结果始终为空。 [英] Query result is always empty.

查看:107
本文介绍了查询结果始终为空。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好。我无法从数据库中读取数据。查询结果为空。我关注这篇文章: GUIDE 。此外,直接在DB中执行查询返回我希望的结果。 DB是SQLSERVER 2012.我做错了什么?



 ...  string  search ....  //  函数的参数 

SqlParameter sqlp = new SqlParameter( @ searchSome ,System.Data.SqlDbType.NVarChar,search.Length);
sqlp.Value = search;

SqlCommand cmd = new SqlCommand( SELECT EngLyrics FROM dbo.Lyrics WHERE SongName LIKE'%@ searchSome%';,DBConnectInfo.connection);
cmd.Parameters.Add(sqlp);

尝试
{
使用(SqlDataReader sdr = cmd.ExecuteReader())
{
string result = String .Empty ;
while (sdr.Read())
{
result = sdr [ EngLyrics]。ToString();
返回结果;
}
返回结果;
}
}
catch (SqlException ex){ return ex的ToString(); }
finally
{
DBConnectInfo.connection.Close();
}

解决方案

'%@ searchSome%'是一个字符串,因此SQL不会尝试进行参数替换。

尝试:

 SqlCommand(  SELECT EngLyrics FROM dbo.Lyrics WHERE SongName LIKE'%'+ @ searchSome +'%';,DBConnectInfo.connection); 


Hi there. I cannot read my data from database. The query result is empty. I following to this article: GUIDE. Also, executing queries directly in DB returns me wished results. DB is SQLSERVER 2012. What i did wrong?

...string search....//the function's argument

SqlParameter sqlp = new SqlParameter("@searchSome", System.Data.SqlDbType.NVarChar, search.Length);
                    sqlp.Value = search;

                    SqlCommand cmd = new SqlCommand("SELECT EngLyrics FROM dbo.Lyrics WHERE SongName LIKE '%@searchSome%';", DBConnectInfo.connection);
                    cmd.Parameters.Add(sqlp);
                    
                    try
                    {
                        using (SqlDataReader sdr = cmd.ExecuteReader())
                        {
                            string result = String.Empty;
                            while (sdr.Read())
                            {
                                result = sdr["EngLyrics"].ToString();
                                return result;
                            }
                            return result;
                        }
                    }
                    catch (SqlException ex) { return ex.ToString(); }
                    finally
                    {
                        DBConnectInfo.connection.Close();
                    }

解决方案

'%@searchSome%' Is a string, so SQL does not try to do and parameter substitution.
Try:

SqlCommand("SELECT EngLyrics FROM dbo.Lyrics WHERE SongName LIKE '%' + @searchSome + '%';", DBConnectInfo.connection);


这篇关于查询结果始终为空。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆