0

つまり、基本的に、2つのテキストフィールドがあります。1つは学生のfirstNameで、もう1つはlastNameです。私がプログラムにやってもらいたいのはこれです:

上記のfirstNameとlastNameを使用して、学生の電話番号とコメントを返しTextBoxます。これは私がこれまでに持っているものです:

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();
}

ここからどこへ行けばいいのかわからない。コードに2つのコメントステートメントを配置したので、割り当ての2つの異なる部分で上記を使用しましたが、それらをまとめると機能しません。

何が起こっているのかというと、私は何の結果も得ていません。基本的に、2つのテキストボックスに示されている学生の電話番号とコメントを提供するために必要です。

4

2 に答える 2

1

エラーが発生していると思いますよね?あなたは同じコマンド オブジェクトに対して 2 つの操作を実行しようとしていますが、私のぼんやりとした記憶では、それはうまくいかないと言われています。この行を削除してみてください。

        cmd.ExecuteNonQuery();

using ステートメントを調べたことがあれば、それは通常、接続やリーダーなどのリソースを処理するためのより優れたソリューションです。

于 2012-10-27T18:32:26.437 に答える
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();
}
于 2012-10-27T21:30:24.110 に答える