2013-02-09 20 views
0
protected void Button1_Click(object sender, EventArgs e) 
{ 
    string sqlstring; 
    OleDbConnection connection = new OleDbConnection("Provider=MSDAORA;Data Source=solaris;Password=medical;User ID=medical"); 
    sqlstring = "select emp_name,decode(sex,null,null,'Self')rel,decode(dob,null,'Ad',floor(months_between(sysdate,dob)/12))age,decode(f_elg,'Y',f_name,null) f_name,decode(f_elg,'Y','Father',null) f_rel,decode(f_dob,null,'Ad',floor(months_between(sysdate,f_dob)/12)) f_age,decode(m_elg,'Y',m_name,null) m_name,decode(m_elg,'Y','Mother',null) m_rel,decode(m_dob,null,'Ad',floor(months_between(sysdate,m_dob)/12)) m_age,decode(s_elg,'Y',s_name,null) s_name,decode(s_elg,'Y',decode(s_sex,'M','Husband','F','Wife'),null) s_rel,decode(s_dob,null,'Ad',floor(months_between(sysdate,s_dob)/12)) s_age,decode(dep_elg1,'Y',dep_name1,null) dep_name1,decode(dep_sex1,'M','Son','F','Daughter',null) dep_rel1,decode(dep_dob1,null,null,floor(months_between(sysdate,dep_dob1)/12)) dep_age1,decode(dep_elg2,'Y',dep_name2,null) dep_name2,decode(dep_sex2,'M','Son','F','Daughter',null) dep_rel2,decode(dep_dob2,null,null,floor(months_between(sysdate,dep_dob2)/12)) dep_age2,decode(dep_elg3,'Y',dep_name3,null) dep_name3,decode(dep_sex3,'M','Son','F','Daughter',null) dep_rel3,decode(dep_dob3,null,null,floor(months_between(sysdate,dep_dob3)/12)) dep_age3,decode(dep_elg4,'Y',dep_name4,null) dep_name4,decode(dep_sex4,'M','Son','F','Daughter',null) dep_rel4,decode(dep_dob4,null,null,floor(months_between(sysdate,dep_dob4)/12)) dep_age4,decode(dep_elg5,'Y',dep_name5,null) dep_name5,decode(dep_sex5,'M','Son','F','Daughter',null) dep_rel5,decode(dep_dob5,null,null,floor(months_between(sysdate,dep_dob5)/12)) dep_age5,decode(dep_elg6,'Y',dep_name6,null) dep_name6,decode(dep_sex6,'M','Son','F','Daughter',null) dep_rel6,decode(dep_dob6,null,null,floor(months_between(sysdate,dep_dob6)/12)) dep_age6 from employee_mas where emp_no='" + TextBox1.Text + "'"; 
    //sqlstring = "select COALESCE(emp_name,'') + ' ' + COALESCE(sex,'')as empinfo from employee_mas where emp_no='" + TextBox1.Text + "'"; 

    OleDbCommand comm = new OleDbCommand(sqlstring, connection); 


    OleDbDataReader reader; 


    connection.Open(); 


    reader = comm.ExecuteReader(); 
    if (reader.Read()) 
    { 
     ListBox1.Items.Add(reader.GetString(reader.GetOrdinal("emp_name"))); 
     ListBox1.Items.Add(reader.GetString(reader.GetOrdinal("age"))); 
     ListBox1.Items.Add(reader.GetString(reader.GetOrdinal("rel"))); 
     ListBox1.Items.Add(reader.GetString(reader.GetOrdinal("f_name"))); 
     ListBox1.Items.Add(reader.GetString(reader.GetOrdinal("f_age"))); 
     ListBox1.Items.Add(reader.GetString(reader.GetOrdinal("f_rel"))); 


    } 

}  

這是我用來填充我的列表框填充GridView控件,使得前幾行成爲gridview的列

現在我想的代碼,即具有3列,比如我的GridView:

Name  Age  Rel 

所以前3個值插入gridview的第一行 秒3秒等等。

幫助會很好。

回答

0

你可以用一個數據表來存儲行,然後讀取所有記錄後,將其綁定到GridView:

protected void Button1_Click(object sender, EventArgs e) 
{ 
    string sqlstring; 
    OleDbConnection connection = new OleDbConnection("Provider=MSDAORA;Data Source=solaris;Password=medical;User ID=medical"); 
    sqlstring = "select emp_name,decode(sex,null,null,'Self')rel,decode(dob,null,'Ad',floor(months_between(sysdate,dob)/12))age,decode(f_elg,'Y',f_name,null) f_name,decode(f_elg,'Y','Father',null) f_rel,decode(f_dob,null,'Ad',floor(months_between(sysdate,f_dob)/12)) f_age,decode(m_elg,'Y',m_name,null) m_name,decode(m_elg,'Y','Mother',null) m_rel,decode(m_dob,null,'Ad',floor(months_between(sysdate,m_dob)/12)) m_age,decode(s_elg,'Y',s_name,null) s_name,decode(s_elg,'Y',decode(s_sex,'M','Husband','F','Wife'),null) s_rel,decode(s_dob,null,'Ad',floor(months_between(sysdate,s_dob)/12)) s_age,decode(dep_elg1,'Y',dep_name1,null) dep_name1,decode(dep_sex1,'M','Son','F','Daughter',null) dep_rel1,decode(dep_dob1,null,null,floor(months_between(sysdate,dep_dob1)/12)) dep_age1,decode(dep_elg2,'Y',dep_name2,null) dep_name2,decode(dep_sex2,'M','Son','F','Daughter',null) dep_rel2,decode(dep_dob2,null,null,floor(months_between(sysdate,dep_dob2)/12)) dep_age2,decode(dep_elg3,'Y',dep_name3,null) dep_name3,decode(dep_sex3,'M','Son','F','Daughter',null) dep_rel3,decode(dep_dob3,null,null,floor(months_between(sysdate,dep_dob3)/12)) dep_age3,decode(dep_elg4,'Y',dep_name4,null) dep_name4,decode(dep_sex4,'M','Son','F','Daughter',null) dep_rel4,decode(dep_dob4,null,null,floor(months_between(sysdate,dep_dob4)/12)) dep_age4,decode(dep_elg5,'Y',dep_name5,null) dep_name5,decode(dep_sex5,'M','Son','F','Daughter',null) dep_rel5,decode(dep_dob5,null,null,floor(months_between(sysdate,dep_dob5)/12)) dep_age5,decode(dep_elg6,'Y',dep_name6,null) dep_name6,decode(dep_sex6,'M','Son','F','Daughter',null) dep_rel6,decode(dep_dob6,null,null,floor(months_between(sysdate,dep_dob6)/12)) dep_age6 from employee_mas where emp_no='" + TextBox1.Text + "'"; 
    //sqlstring = "select COALESCE(emp_name,'') + ' ' + COALESCE(sex,'')as empinfo from employee_mas where emp_no='" + TextBox1.Text + "'"; 

    OleDbCommand comm = new OleDbCommand(sqlstring, connection); 

    OleDbDataReader reader; 

    connection.Open(); 

    DataTable table = new DataTable(); 
    table.Columns.Add("Name"); 
    table.Columns.Add("Age"); 
    table.Columns.Add("Rel"); 

    reader = comm.ExecuteReader(); 
    if (reader.Read()) 
    { 
     string name = reader.GetString(reader.GetOrdinal("emp_name")); 
     string age = reader.GetString(reader.GetOrdinal("age")); 
     string rel = reader.GetString(reader.GetOrdinal("rel")); 

     ListBox1.Items.Add(name); 
     ListBox1.Items.Add(age); 
     ListBox1.Items.Add(rel); 
     ListBox1.Items.Add(reader.GetString(reader.GetOrdinal("f_name"))); 
     ListBox1.Items.Add(reader.GetString(reader.GetOrdinal("f_age"))); 
     ListBox1.Items.Add(reader.GetString(reader.GetOrdinal("f_rel"))); 

     table.Rows.Add(name, age, rel); 
    } 

    GridView.DataSource = table; 
    GridView.DataBind(); 
} 
+0

非常感謝,U鋪平了道路,我走..我甚至可以在沒有列表框的情況下使用gridview .... :) – 2013-02-11 04:27:30