回 帖 发 新 帖 刷新版面

主题:关于操作数据库中信息的问题,大家帮忙瞧瞧

小弟想写个bs模式的程序,承蒙大家帮忙,现在已经成功地连接了数据库并且可以通过按钮对数据库进行查询,添加,修改和删除工作了。
但是现在遇到了新的问题,希望大家能够帮助。
如下,
 public DataSet RunSql(string SqlCmd)
    {
        try
        {
            myCmd = new OleDbDataAdapter(SqlCmd, myConn);
            DataSet ds = new DataSet();
            myCmd.Fill(ds);
            return ds;
        }

        finally
        {
            myConn.Close();
        }
    }
 查询出来的结果被存放到了DataSet中,按照书上的例子,我通过
    DataTable dTable = ds.Tables[0];
    foreach (DataRow dtRow in dTable.Rows)
            {
                    ListBox1.Items.Add(dtRow["姓名"].ToString());
               ListBox1.Items.Add(dtRow["日期"].ToString());
            }
在listBox中将其显示了出来。
现在的问题是 ds.Tables[0];和DataSet的关系是怎样一个关系,按道理,我执行一条select语句得到的只有一个表,为什么要加那个[0]?
还有,ListBox1.Items.Add(dtRow["姓名"].ToString());这一句,这个dtRow["姓名"].ToString()是不是string类型的?我用label.text=dtRow["姓名"].ToString()没有成功。如果我想让他显示在label中因该怎么做?
还有,如果我执行一条sql语句没有成功,比如select没有找到符合的记录,delete没有找到合适的记录,此时我想用label显示“操作没有成功”,应该用什么判断?我用ds==null没成功,大家帮忙给瞧瞧啊

回复列表 (共5个回复)

沙发

ds.Tables 是DataTable类型的数组.就算有一个元素,也要通过下标选择它就算你或的仅有一个元素.

dtRow["姓名"] 应该是Object类型的吧. (string)dtRow["姓名"]试试

通过Count属性判断表中的行数,有数据应该是>1

板凳

谢谢,我去看看。
另外还有就是label.text=dtRow["姓名"].ToString()成功了,上次可能不知哪里错了

3 楼

[quote]
通过Count属性判断表中的行数,有数据应该是>1[/quote]
现在我想知道count属性怎么用。。
难道是sql中的那个count?
那样每次查询修改的都要加上它多麻烦啊
可不可以给个例子?

4 楼

不是哪个^o^
ds.Tables[0].Rows.Count 这个是你获得总行数.

5 楼

谢谢~~~~又学到了不少东西,问题也解决了。结贴啦

我来回复

您尚未登录,请登录后再回复。点此登录或注册