标题:将数据从数据库中读到 listview 中出错,不知道是什么错误,请各位帮忙看看
只看楼主
讨厌数构
Rank: 1
等 级:新手上路
帖 子:32
专家分:4
注 册:2013-10-21
结帖率:50%
已结贴  问题点数:20 回复次数:8 
将数据从数据库中读到 listview 中出错,不知道是什么错误,请各位帮忙看看
using System;
using System.Collections.Generic;
using
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace 学生信息管理系统
{
    public partial class frmCollege : Form
    {
        SqlConnection sqlCon = new SqlConnection();
        SqlCommand sqlCmd = new SqlCommand();

        public frmCollege()
        {
            InitializeComponent();
        }

      

        private void frmCollege_Load(object sender, EventArgs e)
        {
            sqlCon.ConnectionString = "server=87SZ5ANSFFFDKQF\\MYSQL2008;database=db_SMIS;uid=sa;pwd=abc34112519941102238x";   //连接数据库
            sqlCon.Open();
              MessageBox.Show("成功连接上数据库");
            // 测试是否连接上数据库
             // this.btnSelete_Click(sender, e);
              Fresh();
        }

        private void btnSelete_Click(object sender, EventArgs e)
        {
           
            

        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            if (sqlCon.State == ConnectionState.Open)
                sqlCon.Close();
            sqlCon.Open();
             = "select count(*) from tb_College  where CName='" + this.txtCname.Text + "'";
            sqlCmd.Connection = sqlCon;
            int i = Convert.ToInt32(sqlCmd.ExecuteScalar());
            if (i > 0)
            {
                MessageBox.Show("院系信息已经添加过,请不要重复添加!");
                return;

            }
             = "insert into tb_College  values('" + this.txtCname.Text + "','" + this.txtPresident.Text + "')";
            sqlCmd.ExecuteNonQuery();
            MessageBox.Show("院系信息已经添加成功!");
            Fresh();
               
        }

        public void Fresh()
        {
            
            if (sqlCon.State == ConnectionState.Open)
                sqlCon.Close();
            sqlCon.Open();

            sqlCmd.Connection = sqlCon;
             = "select  * from tb_College";
            SqlDataReader sdr = sqlCmd.ExecuteReader();           

            while (sdr.Read())
            {
              
                ListViewItem lv = new ListViewItem(sdr[0].ToString());
                lv.SubItems.Add(sdr[1].ToString());
                lv.SubItems.Add(sdr[2].ToString());
               
            }//在读入数据时出错。无法将数据读到listview中
        }
        //刷新操作

      
    }
}


数据库语句:
--建立学院表
Create table tb_College
(
  CId int  identity(1,1)primary key,
  CName varchar(20) not null,
  CPresident varchar(15)
 )
 
insert into tb_College values('哲学与社会发展学院','李静')
insert into tb_College values('经济与金融学院','金其山')
insert into tb_College  values('计算机学院','陈诚' )
搜索更多相关主题的帖子: 管理系统 public 数据库 信息 
2014-05-18 00:37
讨厌数构
Rank: 1
等 级:新手上路
帖 子:32
专家分:4
注 册:2013-10-21
得分:0 
错误已解决。现在有一个新的问题:
cmbBox如何绑定到数据库中,不知道哪里不对!

            string strSelect = "select CName from tb_College  ";
            SqlDataAdapter sda2 = new SqlDataAdapter(strSelect, sqlCon);
            DataTable dt = new DataTable();
            sda2.Fill(dt);
           // sqlCon.Close();
            this.cmbCollege.DataSource = dt;

一步一步好好学下去吧。加油!!!
2014-05-18 10:55
讨厌数构
Rank: 1
等 级:新手上路
帖 子:32
专家分:4
注 册:2013-10-21
得分:0 
现在又有一个问题是,我想用一个变量存储我从数据库中读取的变量的值,可是一直不对,代码如下

= "select CId from tb_College  where CName='" + this.cmbCName1.SelectedItem.ToString() + "'";
            sqlCmd.Connection = sqlCon;
            SqlDataReader sdr = sqlCmd.ExecuteReader();
            int cid = -1;
            if (sdr.Read())
            {
                cid = Convert.ToInt32(sdr[0]);//txtid是textbox的id
            }
            MessageBox.Show("" + cid);
            sdr.Close();

cid 的值一直是-1.不对

[ 本帖最后由 讨厌数构 于 2014-5-18 12:44 编辑 ]

一步一步好好学下去吧。加油!!!
2014-05-18 12:42
编号1016
Rank: 3Rank: 3
等 级:论坛游侠
威 望:5
帖 子:46
专家分:188
注 册:2014-5-8
得分:10 
回复 2 楼 讨厌数构
实例化DataTable的改成DataSet ds=new DataSet,然后把最后this.  ......=ds.Tables
你试试看这方法
收到的鲜花

相互学习,让自己变得更强大!
2014-05-18 14:40
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:10 
回复 3 楼 讨厌数构
cid 的值一直是-1表示if (sdr.Read())没有执行,应该检查sql语句是否查出值,检查this.cmbCName1.SelectedItem.ToString()的值
2014-05-18 14:52
编号1016
Rank: 3Rank: 3
等 级:论坛游侠
威 望:5
帖 子:46
专家分:188
注 册:2014-5-8
得分:0 
回复 3 楼 讨厌数构
连接数据库(设对象为connection)
int n=-1;
string sql=“”;
sqlcommand com=new sqlcommand(sql,connection);
connection.open();
sqlDataReader r=com.ExecuteReader ();
while(r.Read())
{
    //n=(int)r[0];
    n=conver.toin32(r["CId"])
}
r.close();
你试试看

相互学习,让自己变得更强大!
2014-05-18 14:55
讨厌数构
Rank: 1
等 级:新手上路
帖 子:32
专家分:4
注 册:2013-10-21
得分:0 
回复 4 楼 编号 1016
这个问题已经解决了,谢谢

一步一步好好学下去吧。加油!!!
2014-05-18 18:24
讨厌数构
Rank: 1
等 级:新手上路
帖 子:32
专家分:4
注 册:2013-10-21
得分:0 
回复 6 楼 编号 1016
谢谢,可是尝试了之后,还是不对

一步一步好好学下去吧。加油!!!
2014-05-18 18:29
讨厌数构
Rank: 1
等 级:新手上路
帖 子:32
专家分:4
注 册:2013-10-21
得分:0 
回复 5 楼 yhlvht
发现了,是我错啦,非常感谢!!

[ 本帖最后由 讨厌数构 于 2014-5-18 18:37 编辑 ]

一步一步好好学下去吧。加油!!!
2014-05-18 18:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-431707-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.166997 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved