首页 新闻 会员 周边

关于dataset的使用

0
悬赏园豆:30 [已解决问题] 解决于 2013-07-14 23:45
using (OleDbConnection conn1 = new OleDbConnection(conn_str))
        {
            int[] a = new int[result1];
            a = Gen_Num(284,result1);
            int[] b = new int[result3];
            b = Gen_Num(284, result3);
            conn1.Open();
            OleDbDataAdapter sda = new OleDbDataAdapter("select*from tb_TorF", conn1);
            DataSet ds= new DataSet();
            sda.Fill(ds);
            for (int i = 0; i < result1; i++){
                string qchap = ds.Tables[0].Rows[a[i]-1]["qchap"].ToString();
                string qhard = ds.Tables[0].Rows[a[i]-1]["qhard"].ToString();
                string qold = ds.Tables[0].Rows[a[i]-1]["qold"].ToString();
                string qcontent = ds.Tables[0].Rows[a[i]-1]["qcontent"].ToString();
                string qans = ds.Tables[0].Rows[a[i]-1]["qans"].ToString();
                OleDbCommand cmd1 = new OleDbCommand( string.Format(
                   @"insert into ku (`qchap`,`qhard`,`qold`,`qcontent`,`qans`,`tx`) values({0},{1},{2},'{3}','{4}',{5})",
                     qchap, qhard, qold,qcontent, qans, 1), conn1);
                cmd1.ExecuteNonQuery();
            }

请高手指点一下,这段代码有什么问题吗?为什么写入表格的数据有时候数量正常,有时候又不对呢?测试了一下,如果写入的不是dataset的内容,输出的数量就是对的,似乎是dataset的部分有问题

小菜刚的主页 小菜刚 | 初学一级 | 园豆:74
提问于:2013-07-14 19:31
< >
分享
最佳答案
0

问题不该是数字,字符问题。你贴下具体的错误信息呢?有可能是你的索引越界~

收获园豆:30
幻天芒 | 高人七级 |园豆:37175 | 2013-07-14 22:52

情况是这样的,如果我把qcontent的values改成数值的话,就完全没有问题,但是如果是文本的话,就会偶尔出现写入数据库的数量变少的情况。但是出现问题的时候,报错指向了result1这个值的获取

小菜刚 | 园豆:74 (初学一级) | 2013-07-14 22:56

@小菜刚: 没看到具体的错误信息,不太好分析,如你所说,文本过长也有可能出现错误。

其他:看你的需求,应该是两个表之间复制,将tb_ForF表中的数据复制到ku中,按照这种需求,你大可以发送一条sql语句即可,如

insert into ku 
select * from tb_ForF where id in (...)
幻天芒 | 园豆:37175 (高人七级) | 2013-07-14 23:01

@幻天芒: 说得对,我刚刚也发现了,是我在数据库里设置的字段不够长的原因,谢谢你~

小菜刚 | 园豆:74 (初学一级) | 2013-07-14 23:45
其他回答(1)
0
values 的参数如果不是数字会有问题。
geass.. | 园豆:1821 (小虾三级) | 2013-07-14 20:49

貌似的确是这样的,qcontent里面我穿的是文本,那请问有什么修改的方法吗?

支持(0) 反对(0) 小菜刚 | 园豆:74 (初学一级) | 2013-07-14 20:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册