2013-07-03 64 views
-1

我想从SQL Server数据库中的数据从许多列填充到许多文本框..我有一个代码来填充一个框..可以编辑我的代码..我想拉的数据,并显示在姓名,地址,电话号码和日期... plz帮助..此代码的工作只有一个文本框..提前如何填充数据从SQL Server数据库列到文本框

SqlConnection Conn = new SqlConnection(@"Data Source=rex;Initial Catalog=PersonalDetails;Integrated Security=True"); 
SqlCommand Comm1 = new SqlCommand("Select * From PersonalUsers ", Conn); 

Conn.Open(); 
SqlDataReader DR1 = Comm1.ExecuteReader(); 

if (DR1.Read()) 
{ 
    Name.Text = DR1.GetValue(0).ToString(); 
} 
+1

应该注意的是,你应该使用'using'块来命令和连接对象。另外,你不应该在这里设置文本框。这个数据访问应该在它自己的层上返回一个对象。在您的应用程序中,您可以通过此对象填充文本框。 –

回答

0
SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sql, _conn); 
SqlDataReader rdr = cmd.ExecuteReader(); 
System.Data.DataTable tbl = new System.Data.DataTable("Results"); 
tbl.Load(rdr); 

if (tbl.Rows.Count > 0) 
    Name.Text = tbl.Rows[0]["column_name"].ToString(); 
+0

其在tbl [0]处给出的错误不能将[]用于表达式的索引。 – user2308205

+0

我的不良:我修复了源代码。 – Curt

1

谢谢

while (DR1.Read()) 
{ 

    if(DR1.GetName() == "YourSQLColumnName") 
    { 
     YourTextBox.Text = (string) DR1["YourSQLColumnName"]; 
    } 

    // Your Other textboxes and columns which you want to match should follow as this template 
} 
+0

为一点点的性能增加订单datareader列读作为您的表的排序..即如果电话命名列是第一列写入它的第一匹配顺序.. 原因SQLDataReader读取1路..用这个小窍门,你赢了没有错误或错误/空读取 – sihirbazzz

+0

它说PersonalUser ..无效的列名..当我执行.. – user2308205

+0

:)如果你没有列作为“YourSQLColumnName”的名称,这是非常非常正常;)你应该纠正它与您的真实列名..这是一个模板代码的一部分..意味着你的方式..它不复制粘贴;) – sihirbazzz

0
string cs=System.Configuration.ConfigurationManager.ConnectionString["DBCS"].ConnectionString; 
using(OracleConnection con=new OracleConnection(cs)) 
{ 
sql="select empname from Emp where empno='"+empno+"'"; 
OracleCommand cmd = new System.Data.OracleClient.OracleCommand(sql,con); 
con.Open(); 
OracleDataReader rdr = cmd.ExecuteReader(); 
if(rdr.Read()) 
{ 
EmpName.Text=Convert.ToString(rd["empname"]); 
} 
} 
+1

请为您的答案提供一些上下文或详细信息。 –

0

我假设你想要照顾更多的行和更多的列。

  • 尝试指定列。它没有工作,但如果你这样做,性能会更好。
  • 我假设你有一个名为PersonalUser的类,具有指定的属性。
  • 这也是不错的它在一个有序的,所以我补充说


    public List<PersonalUser> FetchMyData() 
    { 

     SqlConnection Conn = new SqlConnection(@"Data Source=rex;Initial Catalog=PersonalDetails;Integrated Security=True"); 
     SqlCommand Comm1 = new SqlCommand("Select Name, Address, TelephoneNo,Date From PersonalUsers order by Name", Conn); 

     Conn.Open(); 
     SqlDataReader DR1 = Comm1.ExecuteReader(); 

     var result = new List<PersonalUser>(); 
     while (DR1.Read()) 
     { 
      result.Add(new PersonalUser { 
       Name = DR1.GetString(0); 
       Address= DR1.GetString(1); 
       TelephoneNo = DR1.GetString(2); 
       Date = DR1.GetString(3) 
       } 
      ); 
     } 


     return result; 
    } 

我还想,如果需要的是越来越多的复杂得多,这一点,使用实体Framwork conidering ..

相关问题