2012-10-27 40 views
0

所以基本上,我有两个文本字段,一个与firstName和一个与学生的姓氏。我想要程序要做的是:返回学生信息 - SQL/C#分配

使用上面的TextBox的firstName和lastName返回学生的电话号码和注释。这是我到目前为止:

if (actionButton.Text == "Update") 
{ 
    SqlConnection cn; 
    cn = new SqlConnection(); 
    cn.ConnectionString = "Data source=(local); Initial Catalog=INT422Assignment1; Integrated Security=SSPI;"; 
    cn.Open(); 
    SqlCommand cmd; 
    cmd = new SqlCommand(); 
    cmd.Connection = cn; 
    cmd.CommandText = "SELECT firstName, lastName, phoneNumber, Comments FROM myTable WHERE firstName LIKE @firstName AND lastName LIKE @lastName"; //AND lastName LIKE @lastName" 
    //used this part to delete records 

    SqlParameter param = new SqlParameter(); 
    param.ParameterName = "@firstName"; 
    param.Direction = ParameterDirection.Input; 
    param.SqlDbType = SqlDbType.VarChar; 
    param.Value = firstNameTB.Text; 
    cmd.Parameters.Add(param); 

    param.ParameterName = "@lastName"; 
    param.Direction = ParameterDirection.Input; 
    param.SqlDbType = SqlDbType.VarChar; 
    param.Value = lastNameTB.Text; 
    cmd.Parameters.Add(param); 

    //display data in a listbox 
    SqlDataReader reader; 
    reader = cmd.ExecuteReader(); 
    while (reader.Read()) 
    { 
     string s; 
     s = reader["firstName"].ToString() + "-" + reader["lastName"].ToString() + reader["phoneNumber"].ToString() + reader["Comments"].ToString(); 
     MessageBox.Show(s); 
    } 

    cmd.ExecuteNonQuery(); 

    cn.Close(); 
} 

我不知道该从哪里出发。在代码中,我已经放置了两条评论声明,所以我在我的任务的两个不同部分使用了上述内容,但是当我将它们放在一起时,它不起作用。

发生的事是我没有得到任何结果。基本上我需要它给我的电话号码和在两个文本框中指出的学生的意见

+0

你面临什么问题?任何错误,例外.. ?? –

+2

“它不起作用”对问题描述不佳。解释**发生的事情,你期望发生的事情,描述以及出现的异常/错误。 – Oded

+0

对不起,请参阅上文。我编辑了我的问题。 –

回答

1

我假设你遇到了错误,是吗?你正试图在同一个命令对象上执行两个操作,而我朦胧的回忆说这不起作用。尝试删除这一行。

 cmd.ExecuteNonQuery(); 

如果你学过using语句,这是典型的处理资源,例如连接与读者更好的解决方案。

+1

我正要问同样的事情:他试图执行的非查询是什么?另外,请不要忘记在关闭连接之前关闭阅读器。 –

+0

**各位感谢您的帮助和输入** 我删除了以下内容: cmd.ExecuteNonQuery(); 并将我的代码更改为使用param1和param2。我会发布它,但我必须等待8小时,因为我的声望不到10。我会在8小时后发帖..哈哈! –

0
if (actionButton.Text == "Update") 
{ 
    SqlConnection cn = new SqlConnection(); 
    cn.ConnectionString = "Data source=(local); Initial Catalog=INT422Assignment1; Integrated Security=SSPI;"; 
    cn.Open(); 

    MessageBox.Show(cn.ConnectionState.ToString()); 
// If you are shown "Open" by above messagebox and you are using correct table and column names then you will get accurate results by following code 

    SqlCommand cmd = cn.CreateCommand(); 
    cmd.CommandText = "SELECT firstName, lastName, phoneNumber, Comments FROM myTable WHERE firstName LIKE '" + firstNameTB.Text + "' AND lastName LIKE '" + lastNameTB.Text + "' "; 
    SqlDataReader reader = cmd.ExecuteReader(); 
    string s = ""; 
    while (reader.Read()) 
    { 
     s = reader["firstName"].ToString() + "-" + reader["lastName"].ToString() + reader["phoneNumber"].ToString() + reader["Comments"].ToString(); 
     MessageBox.Show(s); 
    }  
    cn.Close(); 
}