读书人

关于用 comboBox控件绑定数据库的有关

发布时间: 2012-01-12 22:11:58 作者: rapoo

关于用 comboBox控件绑定数据库的问题
如题, 本人用的C#2003连接SQL, 在comboBox上遇到了问题, 在网上搜索了半天未果, 所以只有向各热心人士求助了
以下为本人的代码:


private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.Text.Trim() != "")
{


string connectionString = "Data Source=(local);Integrated Security=SSPI;" +
"Initial Catalog = test"; //用的是WINDOWS登陆认证, Initial Catalog=后面的是要连接的数据库

SqlConnection myConnection = new SqlConnection(connectionString);

myConnection.Open();

string mySql = "select AreaName from Area";
SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter(mySql, myConnection);

DataSet ds = new DataSet();
mySqlDataAdapter.Fill(ds);

comboBox1.DisplayMember = "AreaName"; //想显示的字段
comboBox1.ValueMember = "AreaID"; //显示字段对应的值,主键
comboBox1.DataSource = ds.Tables[0]; //数据集


}
}

补充: 由于网上的例子大都是以ACCESS为对象的, 不知道ACCESS和SQL200的绑定方法是否有什么不同之处,
所以以上的方法也是按照ACCESS的来写的, 但是运行虽然没有出错, 却在下拉后没有显示任何数据, 望热心人士指点

[解决办法]

探讨
private void Form1_Load(object sender, System.EventArgs e)
{
string sqlstr = "select dm,mc from table1";
sqlCon.Open();

SqlDataAdapter sqlda = new SqlDataAdapter(sqlstr,sqlCon);
SqlCommandBuilder sqlCmdb = new SqlCommandBuilder(sqlda);

DataSet ds2 = new DataSet();
sqlda.Fill(ds2);

sqlCon.Close();


comboBox1.DataSource = sqlda;
comboBox1.DisplayMember = …

[解决办法]
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.Text.Trim() != "")
{


string connectionString = "Data Source=(local);Integrated Security=SSPI;" +
"Initial Catalog = test"; //用的是WINDOWS登陆认证, Initial Catalog=后面的是要连接的数据库

SqlConnection myConnection = new SqlConnection(connectionString);

// myConnection.Open();

string mySql = "select AreaName,AreaID from Area";
//查询二个字段
SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter(mySql, myConnection);

DataTable ds = new DataTable();
//把上面的dataset改成datadatle试看

mySqlDataAdapter.Fill(ds);

comboBox1.DisplayMember = "AreaName"; //想显示的字段
comboBox1.ValueMember = "AreaID"; //显示字段对应的值,主键
comboBox1.DataSource = ds; //数据集
//直接改成表名


}
}

你用这个方法试试看,如果要是在不行的话,你就调试一下,看表中有没有数据
如果没有数据就是你连接字符串有问题,这个方法我以前有也用


//这是8楼的

private void Form1_Load(object sender, System.EventArgs e)
{
string sqlstr = "select dm,mc from table1";
//sqlCon.Open(); //sqldataadapter不用打开或关闭连接
SqlDataAdapter sqlda = new SqlDataAdapter(sqlstr,sqlCon);


SqlCommandBuilder sqlCmdb = new SqlCommandBuilder(sqlda);

DataSet ds2 = new DataSet();
sqlda.Fill(ds2);

//sqlCon.Close();

comboBox1.DataSource = sqlda; //绑定时出错comboBox1.DisplayMember = "dmsm";
comboBox1.ValueMember = "dm";
}

读书人网 >C#

热点推荐