2013-06-21 45 views
1

我正在尝试从数据库中获取数据到文本!我粘贴的代码工作正常,它并没有给我任何例外,但问题是这是它不能从数据库中获取所需的数据,它获取System.Data.SqlClient.SqlDataReader将SQL数据存储到文本框

请帮助我理清问题...

//// CODE ////

private void ReplaceBookmarkText(Microsoft.Office.Interop.Word.Document doc, string bookmarkName,string text) 
{ 
    object objI=1 ; 
    object count = 7; 
    object oCount = Microsoft.Office.Interop.Word.WdConstants.wdForward; 
    object oUnit = Microsoft.Office.Interop.Word.WdUnits.wdCharacter; 
    int number; 
    //here is your name, store it where ever you want: 
    bookmarkName = doc.Bookmarks.get_Item(ref objI).Name; 
    //bookmarkEnd = doc.Bookmarks.get_Item(ref objI).End; 
    //bookmarkStart = doc.Bookmarks.get_Item(ref objI).Start; 
    number = doc.Bookmarks.get_Item(ref objI).Range.MoveEnd(ref oUnit, ref count); 
    //bookmarkEnd = doc.Bookmarks.get_Item(ref objI).Start; 
    string bookmarkValue = doc.Bookmarks.get_Item(ref objI).Range.Text; 
    MessageBox.Show(bookmarkValue); 
    string db_name = ""; 

    try 
    { 
     sql_con = new SqlConnection(con_str); 
     sql_con.Open(); 

     //"SELECT FirstName FROM ContactPerson WHERE (Contact_ID = " + fNameTemp + ")"); 
     // select s_name from student where s_reg = '11-ARID-4204' 
     // string sql_query = ("select s_name from student where (s_reg = " + txtboxrollno + ")"); 
     //"Select * from logintable where password=" + "'TextBox1.Text'"; 
     sql_cmd = sql_con.CreateCommand(); 
     string qrery = ("select s_name from student where (s_reg = " + "'txtboxrollno.text'" + ")"); 
     SqlCommand cmd = new SqlCommand(qrery,sql_con); 
     //sql_cmd.CommandText = ("select s_name from student where (s_reg = " + txtboxrollno.Text.Trim() + ")"); 
     cmd.ExecuteNonQuery(); 
     MessageBox.Show(cmd.ToString()); 
     SqlDataReader sdr; 
     sdr = cmd.ExecuteReader(); 
     //textBox1.Text = sdr.ToString(); 
     db_name = textBox1.Text; 

     while(sdr.Read()) 
     { 
     //textBox1.Text = sdr["s_name"].ToString(); 
     textBox1.Text = cmd.ExecuteScalar().ToString(); 
     //txtpatientid.Text = command.ExecuteScalar().ToString(); 
     //fNameTextBox.Text = sdr["FirstName"].ToString(); 
     } 
    } 
} 
+0

我很困惑你的问题到底是什么。你能否试着用一句话来澄清这个问题到底是什么? –

+1

**警告**:您的代码易受[SQL注入](http://en.wikipedia.org/wiki/SQL_injection)影响。请使用[SQL参数](http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparameter.aspx)进行研究。 – Brian

+0

问题是这不显示从数据库获得的任何数据!我想让它显示数据库中的数据! cmd.ExecuteQuery()应该返回数据而不是System.bla .... – user2509861

回答

2

怎么是这样的:

sql_cmd = sql_con.CreateCommand(); 
string qrery = "select s_name from student where (s_reg = @s_reg)"; 
SqlCommand cmd = new SqlCommand(qrery,sql_con); 
cmd.Parameters.AddWithValue("@s_reg", txtboxrollno.Text); 
textBox1.Text = cmd.ExecuteScalar() as string; 

有我会推荐一些其他的东西。但是让我们从这个开始。这将取第一行的第一个结果,并将其放入文本框中。

+0

陈述,+1。 – Brian

+0

迈克尔其不工作的人! :( – user2509861

+2

@ user2509861,这给我没有信息的人!!!什么*不工作的人!!! *的意思? –

相关问题