当前位置:编程学习 > C#/ASP.NET >>

用户代码未处理 SqlException

private static IList<News> GetNewsBySql(string sql)
        {
            using (SqlConnection cn = new SqlConnection(connectionString))
            {
                cn.Open();
                SqlCommand cm = new SqlCommand();
                cm.Connection = cn;
                cm.CommandText = sql;
                SqlDataReader dr = cm.ExecuteReader();
                List<News> list = new List<News>();
                while (dr.Read())
                {
                    News news = new News();
                    for (int i=0;i<dr.FieldCount;i++)
                    {
                        string fieldName = dr.GetName(i);
                        if (fieldName == "Id")
                            news.Id = (int)dr["Id"];
                        else if (fieldName == "Title")
                            news.Title = (string)dr["Title"];
                        else if (fieldName == "Author")
                            news.Author = (string)dr["Author"];
                        else if (fieldName == "PubDate")
                            news.PubDate = (DateTime)dr["PubDate"];
                        else if (fieldName == "Contents")
                            news.Contents = (string)dr["Contents"];
                        else if (fieldName == "Clicks")
                            news.Clicks = (int)dr["Clicks"];
                        else if (fieldName == "NewsCategoryId")
                        {
                            news.NewsCategoryId = (int)dr["NewsCategoryId"];
                            news.NewsCategory = NewsCategoryService.GetNewsCategoryById((int)dr["NewsCategoryId"]);
                        }
                    }
                    list.Add(news);
                }
                dr.Close();
                return list;
            }
        }

提示"用户代码未处理 SqlException"
指针指向“SqlDataReader dr = cm.ExecuteReader();”这句
提示 = 附近有语法错误,求解。 --------------------编程问答-------------------- 贴出你的SQL语句,应该就是SQL语句的语法错误 --------------------编程问答-------------------- string sql = "SELECT Id,Title,Author,PubDate,Clicks,NewsCategoryId FROM News";
            if (conditions.Trim().Length > 0)
            {
                sql += "WHERE" + conditions;
            }
            if (sortField.Trim().Length > 0)
            {
                sql += "ORDER BY" + sortField;
            }
            if (direction.Trim().Length > 0)
            {
                sql += " " + direction;
            }
            return GetNewsBySql(sql); --------------------编程问答--------------------
引用 2 楼 xj1214 的回复:
string sql = "SELECT Id,Title,Author,PubDate,Clicks,NewsCategoryId FROM News";
            if (conditions.Trim().Length > 0)
            {
                sql += "WHERE" + conditions;
            }
            if (sortField.Trim().Length > 0)
            {
                sql += "ORDER BY" + sortField;
            }
            if (direction.Trim().Length > 0)
            {
                sql += " " + direction;
            }
            return GetNewsBySql(sql);


自己调试把sql语句打印出来
--------------------编程问答-------------------- 楼上说的什么意思啊? --------------------编程问答--------------------
打断点 调试:

引用 4 楼 xj1214 的回复:
楼上说的什么意思啊?
--------------------编程问答-------------------- 在你sql语句 FROM News后面加个空格 --------------------编程问答-------------------- 不行啊 哥哥们,就没有高手了吗? --------------------编程问答--------------------
引用 7 楼 xj1214 的回复:
不行啊 哥哥们,就没有高手了吗?

 if (conditions.Trim().Length > 0)
{
     sql += "WHERE" + conditions;//where后面是:关键字=conditions
}
 if (sortField.Trim().Length > 0)
{
     sql += "ORDER BY" + sortField;
}
if (direction.Trim().Length > 0)
{
     sql += " " + direction;//order by后面如果有多项中间用逗号隔开,不是空格
}
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,