首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

【【又来狂甩分了】】都说WinForm下用Combobox实现联动很简单,给点代码好吗?【200分,帮顶有喜哈】,该怎么处理

2012-03-31 
【【又来狂甩分了】】都说WinForm下用Combobox实现联动很简单,给点代码好吗?【200分,帮顶有喜哈】数据库:Country

【【又来狂甩分了】】都说WinForm下用Combobox实现联动很简单,给点代码好吗?【200分,帮顶有喜哈】
数据库:
Country:
CountryID       CountryName
      1                           中国
      2                           美国


Province:
ProvinceID     ProvinceName     CountryID
        1                       贵州                     1
        2                       四川                     1
        3                       广东                     1
        4                 米国的一个州           2


City:
CityID                   CityName                 ProvinceID
      1                           贵阳                               1
      2                           六盘水                           1
      3                           成都                               2
      4                           广元                               2
      5                           广州                               3
      6                   米国的一个市                       4


请问

窗体加载时从数据库读出这些数据,并绑定在comboBox1、comboBox2、comboBox3上

改变选项时   实现三级联动


感谢帮忙和帮顶的朋友!

[解决办法]
路过学习 帮顶了
[解决办法]
up
[解决办法]
up
[解决办法]
up
[解决办法]
private void Form1_Load(object sender, EventArgs e)
{
SqlConnection cn = new SqlConnection( "server=localhost;Integrated security=yes;database=pubs ");
SqlDataAdapter da = new SqlDataAdapter( "select CountryID, CountryName from country ", cn);
DataSet ds = new DataSet();
cn.Open();
da.Fill(ds);
cn.Close();


comboBox1.DataSource = ds.Tables[0];
comboBox1.ValueMember = "CountryID ";
comboBox1.DisplayMember = "CountryName ";
}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.Text.Trim().Length == 0)
return;

SqlConnection cn = new SqlConnection( "server=.;Integrated security=yes;database=pubs ");
string strSQL = "select ProvinceID, ProvinceName from Province where CountryID = @CountryID ";
SqlDataAdapter da = new SqlDataAdapter(strSQL, cn);
da.SelectCommand.Parameters.Add( "@CountryID ", SqlDbType.Int).Value = Convert.ToInt32(comboBox1.Text);
DataSet ds = new DataSet();
cn.Open();
da.Fill(ds);
cn.Close();
comboBox2.DataSource = ds.Tables[0];
comboBox2.ValueMember = "ProvinceID ";
comboBox2.DisplayMember = "ProvinceName ";
}

private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox2.Text.Trim().Length == 0)
return;

SqlConnection cn = new SqlConnection( "server=.;Integrated security=yes;database=pubs ");
string strSQL = "select CityID,CityName from city where ProvinceID = @ProvinceID ";
SqlDataAdapter da = new SqlDataAdapter(strSQL, cn);
da.SelectCommand.Parameters.Add( "@ProvinceID ", SqlDbType.Int).Value = Convert.ToInt32(comboBox2.Text);
DataSet ds = new DataSet();
cn.Open();
da.Fill(ds);
cn.Close();
comboBox3.DataSource = ds.Tables[0];
comboBox3.ValueMember = "CityID ";
comboBox3.DisplayMember = "CityName ";
}
[解决办法]
路过学习 帮顶
[解决办法]
又来狂接分了
[解决办法]
up
[解决办法]
up
[解决办法]
jf
[解决办法]
学习
[解决办法]
用SelectedIndexChanged事件就可以了
[解决办法]
学习!
[解决办法]
学习!
[解决办法]
建立一个索引City,把City、Province和Country关联到一起,如下:
if exists (select * from dbo.sysobjects where id = object_id(N '[dbo].[v_City] ') and OBJECTPROPERTY(id, N 'IsView ') = 1)
drop view [dbo].[v_City]
GO

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

CREATE VIEW dbo.v_City
AS
select a.*,b.ProvinceName,b.CounntryID,c.CountryName
from City a left join Province b on a.ProvinceId=b.ProvinceId
left join Country c on b.CountryID=c.CountryID

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
选取数据时从创建的v_City视图中选取并按照CounntryID,ProvinceId,id排序做起来更好些。
[解决办法]
按amandag(高歌) 的来就可以了
[解决办法]
学习飘过~~~~
------解决方案--------------------


UP
[解决办法]
amandag(高歌) 的你改下连接字符就可以了啊~~

SqlConnection cn = new SqlConnection( "server=.;Integrated security=yes;database=pubs ");
改为
SqlConnection cn = new SqlConnection( "server=127.0.0.1;Integrated security=yes;database=pubs ");

热点排行