C#绑定数据库,通过comboBox显示数据,为什么编译能通过,但不能运行啊?

lixueqiji 2006-07-06 01:15:40
我初学C#绑定ACCESS数据库中表的某个字段,比如绑顶comboBox控件,编译能通过,但是确说An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in system.data.dll
怎么回事啊,弄半天都不行!!!!急死了!!!!
程序代码如下:
public class Form1 : Form
{
private ComboBox ComboBox1 ;
private Button button1 ;
private System.Data.DataSet myDataSet ;
private System.ComponentModel.Container components = null ;

public Form1 ( )
{
file://打开数据链接,得到数据集
GetConnect ( ) ;
InitializeComponent ( ) ;
}
file://清除程序中使用过的资源
protected override void Dispose (bool disposing)
{
if (disposing)
{
if (components != null)
{
components.Dispose ( ) ;
}
}
base.Dispose (disposing) ;
}

private void GetConnect ( )
{
file://创建一个 OleDbConnection
string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = db.mdb" ;
OleDbConnection myConn = new OleDbConnection (strCon) ;
string strCom = " SELECT * FROM person " ;
file://创建一个 DataSet
myDataSet = new DataSet ( ) ;

myConn.Open ( ) ;
file://用 OleDbDataAdapter 得到一个数据集
OleDbDataAdapter myCommand = new OleDbDataAdapter (strCom , myConn) ;
file://把Dataset绑定person数据表
myCommand.Fill (myDataSet , "person") ;
file://关闭此OleDbConnection
myConn.Close ( ) ;

}

private void button1_Click (object sender , System.EventArgs e)
{
ComboBox1.DataSource = myDataSet ;
ComboBox1.DisplayMember = "person.xm" ;
ComboBox1.ValueMember = "person.xm" ;
}
static void Main ( )
{
Application.Run (new Form1 ( )) ;
}
}
...全文
296 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
marvelstack 2006-07-07
  • 打赏
  • 举报
回复
绑定的有问题,
ComboBox1.DataSource = myDataSet ;//数据集
ComboBox1.DisplayMember = "person.userId" ;//表名加字段名
ComboBox1.ValueMember = "person.username" ;

this.ComboBox1.DataSource = myDataTable;//数据表
this.ComboBox1.DisplayMember = "Name";//字段名
this.ComboBox1.ValueMember = "userId";//字段名
lixueqiji 2006-07-06
  • 打赏
  • 举报
回复
您的意思我还是不太明白,可以说具体点吗,或者把您的邮箱留下,我发给您帮我看看,真是感激不已啊~~~~~~~~~~~~~
我从昨晚就开始弄了,真的很着急
Knight94 2006-07-06
  • 打赏
  • 举报
回复
你的myConn有问题,连接字符串有问题,看看对应的文件是否存在。
lixueqiji 2006-07-06
  • 打赏
  • 举报
回复
出现黄!,An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in system.data.dll.


下面这句话是绿色字体
OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom,myConn);
Knight94 2006-07-06
  • 打赏
  • 举报
回复
进行调试的时候,看看那句话出错了。
lixueqiji 2006-07-06
  • 打赏
  • 举报
回复
我按楼上的改完后 问题仍然存在,编译通过,不能运行
lixueqiji 2006-07-06
  • 打赏
  • 举报
回复
请楼上说清楚点 好吗 我初学
Knight94 2006-07-06
  • 打赏
  • 举报
回复
1、
change
string strCom = " SELECT * FROM person " ;
with
string strCom = " SELECT * FROM [person] " ;

2
change
ComboBox1.DataSource = myDataSet ;
ComboBox1.DisplayMember = "person.xm" ;
ComboBox1.ValueMember = "person.xm" ;
with
ComboBox1.DataSource = myDataSet.Tables["person"];
ComboBox1.DisplayMember = "xm" ;
ComboBox1.ValueMember = "xm" ;
lixueqiji 2006-07-06
  • 打赏
  • 举报
回复
谢谢Knight94(愚翁),可真是大好人啊! 还有楼上的兄弟们
lixueqiji 2006-07-06
  • 打赏
  • 举报
回复
楼上的谢谢你,刚才的问题解决了,但是这句话又出现了绿色框框,怎么回事啊
myCommand.Fill (myDataSet) ;////////
lixueqiji 2006-07-06
  • 打赏
  • 举报
回复
好的我试试! 麻烦大家了 好心人真多~~~~~`
一天雨水 2006-07-06
  • 打赏
  • 举报
回复
你再测试一下吧!


public class Form1 : Form
{
private ComboBox ComboBox1 ;
private Button button1 ;
private System.Data.DataSet myDataSet ;
private System.ComponentModel.Container components = null ;

public Form1 ( )
{
file://打开数据链接,得到数据集
GetConnect ( ) ;
InitializeComponent ( ) ;
}
file://清除程序中使用过的资源
protected override void Dispose (bool disposing)
{
if (disposing)
{
if (components != null)
{
components.Dispose ( ) ;
}
}
base.Dispose (disposing) ;
}

private void GetConnect ( )
{
file://创建一个 OleDbConnection
string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = db.mdb" ;
OleDbConnection myConn = new OleDbConnection (strCon) ;
string strCom = " SELECT * FROM person " ;
file://创建一个 DataSet
myDataSet = new DataSet ( ) ;

myConn.Open ( ) ;
file://用 OleDbDataAdapter 得到一个数据集
OleDbDataAdapter myCommand = new OleDbDataAdapter (strCom , myConn) ;
file://把Dataset绑定person数据表
myCommand.Fill (myDataSet) ;////////
file://关闭此OleDbConnection
myConn.Close ( ) ;

}

private void button1_Click (object sender , System.EventArgs e)
{
ComboBox1.DataSource = myDataSet.Table[0].DefaultView ;////////
ComboBox1.DisplayMember = "xm" ;//////////
ComboBox1.ValueMember = "xm" ;///////////
}
static void Main ( )
{
Application.Run (new Form1 ( )) ;
}
}
joan_lu 2006-07-06
  • 打赏
  • 举报
回复
ComboBox1.DataSource = myDataSet.Tables[0];

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧