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

急啊,各位高手们帮帮忙,谢谢大家

       public static IList<Team> getByName(string name) {
           string sql = "select * from Team where product like '%"+name+"%'";
           
           List<Team> list = new List<Team>();
          using (DataTable table=DBHelper.GetDataSet(sql))
           {
                foreach(DataRow row in table.Rows)
               {
                   Team t = new Team();
                   t.Address = Convert.ToString(row["address"]);
                   t.BeginTime = Convert.ToInt32(row["begin_time"]);
                   t.Bonus = Convert.ToInt32(row["bonus"]);
                   t.Buyonce = Convert.ToString(row["buyonce"]);
                   t.Card = Convert.ToInt32(row["card"]);
                   t.CityId = Convert.ToInt32(row["city_id"]);
                   t.CloseTime = Convert.ToInt32(row["close_time"]);
                   t.Condbuy = Convert.ToString(row["condbuy"]);
                   t.Conduser = Convert.ToString(row["conduser"]);
                   t.Credit = Convert.ToInt32(row["credit"]);
                   t.Delivery = Convert.ToString(row["delivery"]);
                   t.Detail = Convert.ToString(row["detail"]);
                   t.EndTime = Convert.ToInt32(row["end_time"]);
                   t.ExpireTime = Convert.ToInt32(row["expire_time"]);
                   t.Express = Convert.ToString(row["express"]);
                   t.Fare = Convert.ToInt32(row["fare"]);
                   t.Farefree = Convert.ToInt32(row["farefree"]);
                   t.Flv = Convert.ToString(row["flv"]);
                   t.GroupId = Convert.ToInt32(row["group_id"]);
                   list.Add(t);
               }
               return list;
           }
       }

这个老是读不出来,走到foreach(DataRow row in table.Rows)这时就不走了,就到return list了,用sql语句在数据库里查询也有数据啊,就是在这里查不出来了啊,我用的是mySql数据库  真郁闷 ,已经好几个小时了 --------------------编程问答-------------------- 你的table里查到数据了么 --------------------编程问答-------------------- SQL语句没问量啊,我在数据库里查了没事啊 --------------------编程问答-------------------- 你用DEBUG,F9设置断点
foreach(DataRow row in table.Rows)设置一个
list.Add(t);设置一个
return list;设置一个

然后一步步的运行,达到断点时,鼠标放到t上,看看t的值是多少,放到
string sql 上,看看语句是什么。放到你怀疑的一切对象上,观察其只的是否正常 --------------------编程问答-------------------- using (DataTable table=DBHelper.GetDataSet(sql).Tables[0])

写成这样试一下看
--------------------编程问答--------------------
        public static DataTable GetDataSet(string safeSql)
        {
            
            DataSet ds = new DataSet();
            //SqlCommand cmd = new SqlCommand(safeSql, Connection);
            MySqlCommand cmd = new MySqlCommand(safeSql, Connection);
            MySqlDataAdapter da = new MySqlDataAdapter(cmd);
            da.Fill(ds);
            connection.Close();
            return ds.Tables[0];
        }
这是DBHelper里的代码
跟本就进不去foreach(DataRow row in table.Rows)这里面; --------------------编程问答-------------------- 进不去,那说明你的datatable是空的嘛,检查看看,那个位置是空的。 --------------------编程问答-------------------- 找不到啊,老郁闷了,头晕的都不知道从哪儿找了! --------------------编程问答-------------------- 方法改这样
public static DataTable GetDataSet(string safeSql)
        {
            
            DataSet ds = new DataSet();
            //SqlCommand cmd = new SqlCommand(safeSql, Connection);
            MySqlCommand cmd = new MySqlCommand(safeSql, Connection);
            MySqlDataAdapter da = new MySqlDataAdapter(cmd);
            da.Fill(ds);
            return ds;        }

这里改这样,试一下看。
 using (DataTable table=DBHelper.GetDataSet(sql).Tables[0])
不行,就上断点,调试,看方法里面 返回 ds 的时候,看ds 是不是空的。

--------------------编程问答-------------------- "select * from Team where product like '%"+name+"%'"   name要是数字或英文的时候没事,如果是汉字就不行了,怎么弄啊 --------------------编程问答-------------------- 啥意思,?  怎么汉字就不行呢?  是不是你数据库字段问题? --------------------编程问答-------------------- 在数据库里查行啊,第一次用mysql,以前都用sqlserver2005 --------------------编程问答-------------------- mysql 没用过,不知道咋搞, 自己上网搜索吧。慢慢搞,程序这东西,急不来的。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,