2017-02-24 32 views
0

これは、私の新しいアプリケーションのソリューションのために共有しているコードの一部です。は、スカラー変数@ TextBox1を宣言する必要があります。asp.net

私はこのコードを実行すると、それは

public partial class About : Page 
    { 
     SqlCommand cmd = new SqlCommand(); 
     SqlConnection con = new SqlConnection(); 


     protected void Page_Load(object sender, EventArgs e) 
     { 
      con.ConnectionString = "Data Source=.;Initial Catalog=carpro;Integrated Security=True"; 
       con.Open(); 
     } 

     protected void Button1_Click(object sender, EventArgs e) 
     { 

      SqlCommand cmd = new SqlCommand("Insert into Driver_Registration(Driver_Name,Driver_DOB,Driver_Address,License_Number,National_Insurance_Number,"+ 
              "Email_Address,UK_History,Contact,Occupation,License_Details,Taxi_License_Number,"+ 
              "Deposit_Details,Weekly_Rent) Values (@TextBox1,@TextBox2,@TextBox3,@TextBox4,@TextBox5," + 
              "@TextBox6,@TextBox7,@TextBox8,@TextBox9,@TextBox10,@TextBox11,@TextBox12,@TextBox13)",con); 

      cmd.Parameters.AddWithValue("@Driver_Name",TextBox1.Text); 
      cmd.Parameters.AddWithValue("@Driver_DOB", TextBox2.Text); 
      cmd.Parameters.AddWithValue("@Driver_Address", TextBox3.Text); 
      cmd.Parameters.AddWithValue("@License_Number", TextBox4.Text); 
      cmd.Parameters.AddWithValue("@National_Insurance_Number", TextBox5.Text); 
      cmd.Parameters.AddWithValue("@Email_Address", TextBox6.Text); 
      cmd.Parameters.AddWithValue("@UK_History", TextBox7.Text); 
      cmd.Parameters.AddWithValue("@Contact", TextBox8.Text); 
      cmd.Parameters.AddWithValue("@Occupation", TextBox9.Text); 
      cmd.Parameters.AddWithValue("@License_Details", TextBox10.Text); 
      cmd.Parameters.AddWithValue("@Taxi_License_Number", TextBox11.Text); 
      cmd.Parameters.AddWithValue("@Deposit_Details", TextBox12.Text); 
      cmd.Parameters.AddWithValue("@Weekly_Rent", TextBox13.Text); 
      cmd.ExecuteNonQuery(); 

      Label1.Text = "Registration Successfull"; 

      con.Close(); 
     } 


    } 
+1

cmd.Parameters.AddWithValue( "@ののTextBox1"、TextBox1.Text); –

+0

'SqlCommand'または' SqlConnection'をフィールドとして保存しないでください。また、それをローカル関数として使用し、finallyブロック内でそれを 'Dispose'するか、またはusingステートメントでラップします。 – mason

答えて

1

例外は「スカラー変数の@ textBox1テキストボックスを宣言しなければなりません」スローあなたはINSERT文で使用されるパラメータは、あなたのcmd.Parameters.AddWithValue(..)に作成しているのと同じパラメータではありません。実際に作成したパラメータにINSERTのパラメータを置き換えて@Driver_Nameのように置き換えます。

また、あなたはあなたのボタンまでご

con.ConnectionString = "Data Source=.;Initial Catalog=carpro;Integrated Security=True"; 
con.Open(); 

を移動する必要があります。基本的には、接続を1回だけ開いてから、ボタンをクリックすると閉じます。現在、アプリケーションを再起動せずに接続を再オープンする方法はありません。

さらに、それを独自のクラス/機能に分割することをお勧めします。 さらに、web.configで接続文字列を設定し、そこから依存関係注入を利用して呼び出します。あなたはパラメータを指定するクエリで

0

(@TextBox1,@TextBox2,@TextBox3,@TextBox4,@TextBox5," + "@TextBox6,@TextBox7,@TextBox8,@TextBox9,@TextBox10,@TextBox11,@TextBox12,@TextBox13)

あなたはあなたがあなたのクエリを変更することができます2つのオプション

1を持っている:

変更することができます

VALUES(@Driver_Name,......

2 AddWithValueに:

cmd.Parameters.AddWithValue("@TextBox1",TextBox1.Text); ...

関連する問題