0
    protected void Submit_Click(object sender, EventArgs e)
        {
            //string strCon = "Server=yourServer;Database=BuspassDb;User Id=Sa;Password=india;";
            SqlConnection sqlConn = new SqlConnection(strCon);
            SqlCommand cmd = new SqlCommand("select * from Console where Text = @TextTmp", sqlConn);
            //cmd.CommandText = "CheckIfStringExists";
            cmd.Parameters.AddWithValue("@TextTmp", txtString.Text);
            //SqlParameter param = new SqlParameter();
            //param.ParameterName = "@TextTmp";
            //param.Value = txtString.Text;
            //cmd.Parameters.Add(param);
            try
            {
                sqlConn.Open();
                SqlDataReader reader = cmd.ExecuteReader();
                //reader = cmd.ExecuteReader();
                if (reader.HasRows)
                {
                    reader.Read();
                    txtString.Text = (reader["Text"].ToString());
                    lblMessage.Text = txtString.Text + ".... is already exists";
                }
                else 

                    lblMessage.Text = txtString.Text + "... is not exists";
                    txtString.Text = "";
                    sqlConn.Close();


                    //SqlConnection sqlCon = new SqlConnection(strCon);
                    //SqlCommand cmdd = new SqlCommand();
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.CommandText = "InsertConsole2";
                    cmd.Connection = sqlConn;
                    //cmd.Parameters.AddWithValue("@TextTmp", txtString.Text);
                    sqlConn.Open();
                    cmd.ExecuteScalar();
                    lblMessage.Text = txtString.Text + "....is Inserted";
                    }
                    catch (Exception ex)
            {
                lblMessage.Text = ex.Message;
            }
It shows the following error on the page 

私が間違っていることを助けてください

if チェックする データを挿入しない if データを挿入する チェックしない

誰かがこの質問を完全に手伝ってくれれば働く

> ExecuteReader: Connection property has not been initialized.

I am writing in C# then it is not working properly.

私はC#で書いていますが、正しく動作していません。

4

5 に答える 5

9

この行を変更

 SqlCommand cmd = new SqlCommand("select * from Console where Text = @TextTmp",sqlConn );

また、間違ったパラメーター名パラメーターを割り当てるステートメントも変更します

 param.ParameterName = "@TextTmp"; 

executereader を 1 回だけ呼び出す

于 2013-05-03T19:07:50.023 に答える
8

を指定する必要がありますSqlCommand.Connection

2 番目のパラメーターとして代替コンストラクターに渡すことができます。

new SqlCommand("select * from Console where Text = @TextTmp", sqlConn);

または、プロパティを直接設定できます。

cmd.Connection = sqlConn;
于 2013-05-03T19:07:11.303 に答える
0

このコードには、次のようないくつかの問題があります。

  • Connectionのプロパティを割り当てていませんSqlCommand
  • 間違ったパラメータ名 (@StringTmpの代わり@TextTmp) を使用しています。
  • ExecuteReader()あなたは2回電話しています。
  • オブジェクトを適切に処分していません。usingブロックを使用するか、自分自身を呼び出しDispose()ます。

また、効果的にそれ自体に割り当てtxtString.Textています。


編集:コードサンプル

    protected void Submit_Click(object sender, EventArgs e)
    {
        using (SqlConnection sqlConn = new SqlConnection(strCon))
        using (SqlCommand cmd = new SqlCommand("select * from Console where Text = @TextTmp", sqlConn))
        {
            cmd.Parameters.AddWithValue("@TextTmp", txtString.Text);

            try
            {
                sqlConn.Open();
                using (SqlDataReader reader = cmd.ExecuteReader())
                {
                    if (reader.HasRows)
                    {
                        reader.Read();
                        txtString.Text = reader["Text"].ToString(); // Why?
                        lblMessage.Text = txtString.Text + "String is already exists";
                    }
                    else
                    {
                        lblMessage.Text = txtString.Text + "No data";
                        txtString.Text = "";
                    }
                }
            }
            catch (Exception ex)
            {
                lblMessage.Text = ex.Message;
            }
        }
    }
于 2013-05-03T19:50:32.080 に答える
0

SqlCommand で SqlConnection を指定する必要があります。この例を参照してください:

SqlCommand cmd = new SqlCommand("select * from Console where Text = @TextTmp",sqlConn );

詳細については、 http://www.dotnetperls.com/sqlconnectionを確認してください。

于 2013-05-03T19:10:32.460 に答える
0
protected void Submit_Click(object sender, EventArgs e)
{
    string strCon = "Server=yourServer;Database=yourDB;User Id=Username;Password=Password;";
    SqlConnection sqlConn = new SqlConnection(strCon);
    SqlCommand cmd = new SqlCommand("select * from Console where Text = @TextTmp", sqlConn);
    cmd.Parameters.AddWithValue("@TextTmp", txtString.Text);

    try
    {
        sqlConn.Open();
        SqlDataReader reader = cmd.ExecuteReader();
        reader = cmd.ExecuteReader();
        if (reader.HasRows)
        {
            reader.Read();
            txtString.Text = reader["Text"].ToString();
            lblMessage.Text = txtString.Text + ": String is already exists";
        }
        else
        {
            lblMessage.Text = txtString.Text + ": No data";
             txtString.Text = "";
        }
    }
    catch (Exception ex)
    {
        lblMessage.Text = ex.Message;
    }
于 2013-05-03T19:11:54.663 に答える