[求助] 晕,有种想吐血的感觉!!!(没分了...)
额....没分了,大侠们当作作好事吧。
一个win窗体中:
存储过程:
- SQL code
CREATE PROCEDURE getallczyinfo ( @sale_id char(10) , @sale_name char(10), @sale_jg char(10) ) ASdeclare @condition varchar(400) set @condition='' if(rtrim(@sale_id)!='') begin set @condition=@condition+' and sale_id='''+@sale_id+'''' end if(rtrim(@sale_name)!='') begin set @condition=@condition+' and sale_name='''+@sale_name+'''' end if(rtrim(@sale_jg)!='') begin set @condition=@condition+' and sale_jg='''+@sale_jg+'''' enddeclare @select1 varchar(2000) set @select1='select salepeople.sale_id as 销售员编号,salepeople.sale_name as 销售员姓名,salepeople.sale_sex as 销售员性别, salepeople.sale_age as 销售员年龄, salepeople.sale_jg as 销售员籍贯,salepeople.sale_xl as 销售员学历, salepeople.sale_call as 销售员电话,salepeople.sale_zhz as 销售员住址, salepeople.sale_xst as 销售员柜台 from salepeople where sale_id!=''-1''' exec(@select1+@condition)GO
代码是:
- C# code
namespace openjjsys{ public partial class salepeoplemanage : Form { public salepeoplemanage() { InitializeComponent(); } private SqlConnection mycn; private SqlCommand mycmd; private SqlDataAdapter myda; private DataSet myds; private void salepeoplemanage_Load(object sender, EventArgs e) { mycn = new SqlConnection(); mycn = new SqlConnection("server=localhost;uid=sa;pwd=;database=openjjsys;"); myds = new DataSet(); mycmd = new SqlCommand(); mycmd.Connection = mycn; mycmd.CommandType = CommandType.StoredProcedure; mycmd.CommandText = "getallczyinfo"; mycmd.Parameters.Add(new System.Data.SqlClient.SqlParameter ("@sale_id",System.Data.SqlDbType.Char,10,"sale_id")); mycmd.Parameters.Add(new System.Data.SqlClient.SqlParameter ("@sale_name", System.Data.SqlDbType.Char, 10, "sale_name")); mycmd.Parameters.Add(new System.Data.SqlClient.SqlParameter ("@sale_jg", System.Data.SqlDbType.Char, 10, "sale_jg")); myda = new SqlDataAdapter(); myda = new SqlDataAdapter("getallczyinfo", mycn); myda.SelectCommand = mycmd; mycmd.Parameters["@sale_id"].Value = "%"; mycmd.Parameters["@sale_name"].Value = "%"; mycmd.Parameters["@sale_jg"].Value = "%"; myda.Fill(myds, "salepeople"); dataGridView1.DataSource = myds; dataGridView1.DataMember = "salepeople"; } private void button1_Click(object sender, EventArgs e) { try { myda.SelectCommand.Parameters["@sale_id"].Value = textBox1.Text; myda.SelectCommand.Parameters["@sale_name"].Value = textBox2.Text; myda.SelectCommand.Parameters["@sale_jg"].Value = comboBox1.SelectedItem; myds.Tables["salepeople"].Clear(); myda.Fill(myds, "salepeople"); } catch (SqlException ee) { MessageBox.Show(ee.Message); } } }}
这个样子就可以....于是我就想了,我在新建一个win窗体....只做少少的改动。
存储过程:
- SQL code
CREATE PROCEDURE getzyinfo ( @sale_id char(10) , @sale_name char(10)) ASdeclare @condition varchar(400) set @condition='' if(rtrim(@sale_id)!='') begin set @condition=@condition+' and sale_id='''+@sale_id+'''' end if(rtrim(@sale_name)!='') begin set @condition=@condition+' and sale_name='''+@sale_name+'''' enddeclare @select1 varchar(2000) set @select1='select salepeople.sale_id as 销售员编号,salepeople.sale_name as 销售员姓名,salepeople.sale_sex as 销售员性别, salepeople.sale_age as 销售员年龄, salepeople.sale_jg as 销售员籍贯,salepeople.sale_xl as 销售员学历, salepeople.sale_call as 销售员电话,salepeople.sale_zhz as 销售员住址, salepeople.sale_xst as 销售员柜台 from salepeople where sale_id!=''-1''' exec(@select1+@condition)GO
代码是:
- C# code
namespace openjjsys{ public partial class salepeopleshanchu : Form { public salepeopleshanchu() { InitializeComponent(); } private SqlConnection mycn; private SqlCommand mycmd; private SqlDataAdapter myda; private DataSet myds; private void salepeopleshanchu_Load(object sender, EventArgs e) { mycn = new SqlConnection(); mycn = new SqlConnection("server=localhost;uid=sa;pwd=;database=openjjsys;"); myds = new DataSet(); mycmd = new SqlCommand(); mycmd.Connection = mycn; mycmd.CommandType = CommandType.StoredProcedure; mycmd.CommandText = "getzyinfo"; mycmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@sale_id", System.Data.SqlDbType.Char, 10, "sale_id")); mycmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@sale_name", System.Data.SqlDbType.Char, 10, "sale_name")); myda = new SqlDataAdapter(); myda = new SqlDataAdapter("getzyinfo", mycn); myda.SelectCommand = mycmd; mycmd.Parameters["@sale_id"].Value = "%"; mycmd.Parameters["@sale_name"].Value = "%"; myda.Fill(myds, "salepeople"); dataGridView1.DataSource = myds; dataGridView1.DataMember = "salepeople"; } private void button1_Click(object sender, EventArgs e) { try { myda.SelectCommand.Parameters["@sale_id"].Value = textBox1.Text; myda.SelectCommand.Parameters["@sale_name"].Value = textBox2.Text; myds.Tables["salepeople"].Clear(); myda.Fill(myds, "salepeople"); } catch (SqlException ee) { MessageBox.Show(ee.Message); } } }}
他妈的dataGridView就不显示了....感觉数据库又没连上.....晕死了...
2个独立的窗体,第二个就比第一个少了一个comboBox1而已.....2个存储过程,第二个也就稍微修改了第一个....
怎么TMD就不可以了呢?????????????????????
[解决办法]
第二个窗体 的 InitializeComponent(); dataGridView1 的列都设定好了吗,如果没有AutoGenerateColumns = true 的话,
第二个窗体 按钮点击后也没有绑定数据给dataGridView1
那个 未将对象引用设置到对象的实例 就要调试一下才知道了
[解决办法]
设置断点单步跟踪!
自己调试下试试看,调试是程序员必备的!楼主加油!
[解决办法]
才对应的窗体内部 设置断点.也就是要打开的的窗体界面
如果直接打开,那就说明里面的没有被执行,好好检查下参数问题.
[解决办法]
WinFrom里面没有这个方法的
dataGridView1.DataBind(); 只有绑定后有数据的会自动显示出来,不用像WebForm里需要DataBind()的
调试一下看看有没有数据