当前位置: 代码迷 >> SQL >> 关于用C#将一个表拆成几个子表,并处理数据的有关问题
  详细解决方案

关于用C#将一个表拆成几个子表,并处理数据的有关问题

热度:194   发布时间:2016-05-05 15:25:14.0
求助 关于用C#将一个表拆成几个子表,并处理数据的问题
刚开始接触SQL。需要处理一个表的数据,通过一列(Cell)的不同值,将这个表的数据分别做不同的处理。比如说这一列的数据是1,1,1,1,2,2,2,则是1的进行一种处理。2的进行另一种处理。表中每一个数据都要用到。我开始的处理方法是先将Cell列的数据提取出来,
C# code
 //获得Cell列不同的值            SqlCommand cmd = new SqlCommand();            cmd.Connection = m_SqlConn;            cmd.CommandText = "select distinct Cell from " + sTableName;            cmd.CommandType = CommandType.Text;            SqlDataAdapter sda = new SqlDataAdapter();            sda.SelectCommand = cmd;            DataSet ds = new DataSet();            sda.Fill(ds, sTableName);


然后得到不同的Cell值的个数
C# code
int nDiffCellValueCount = ds.Tables[sTableName].Rows.Count;


对每个Cell值再得到一次DataSet,
C# code
 //得到相同的Cell值的表            for (int i = 0; i < nDiffCellValueCount; i++ )            {                SqlCommand cmd1 = new SqlCommand();                cmd1.Connection = m_SqlConn;                cmd1.CommandText = "select * from Cell where Cell = " + ds.Tables[0].Rows[i][0].ToString();                cmd1.CommandType = CommandType.Text;                SqlDataAdapter sda1 = new SqlDataAdapter();                sda1.SelectCommand = cmd;                //记录下该DataSet对应的Cell值                _DataValue ds1 = new _DataValue(Convert.ToUInt64(ds.Tables[0].Rows[i][0]));                sda.Fill(ds1._DataSet, sTableName);                DataBaseValueAL.Add(ds1);            }


结果在for循环的时候把数据库服务器弄挂了,请问该怎么做啊?现在都不敢随便试了



------解决方案--------------------
for循环的时候把数据库服务器弄挂了...
死循环了吧
------解决方案--------------------
sda.Fill(ds1._DataSet, sTableName);
肯定 是这块有问题。
你这样select,效率实在太低啊。
每行都select......
  相关解决方案