2011-12-15 12 views
0

動作しないコードのこの作品は正常に動作します....app.configを接続文字列が

Private Sub save() 
     Dim con As New SqlClient.SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=D:\Chuttu VB\Projects\LIC\LIC.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True") 

     Dim sql As New SqlClient.SqlCommand("INSERT INTO ProposerDetails " & _ 
              "VALUES (" & Convert.ToInt32(PolicyNumberTextBox.Text) & ",'" & NameTextBox.Text & "','" & AgeTextBox.Text & "','" & PhoneTextBox.Text & "','" & AddressTextBox.Text & "','" _ 
              & NomineeTextBox.Text & "','" & NomineeRelationTextBox.Text & "'," & PlanID() & ",'" & PolicyTermTextBox.Text & "','" & PremiumAmountTextBox.Text & "','" _ 
              & PremiumTypeComboBox.Text & "','" & SumProposedTextBox.Text & "','Date')", con) 

     MsgBox(sql.CommandText) 
     con.Open() 

     MsgBox(con.State.ToString) 
     Dim i As Integer = sql.ExecuteNonQuery 
     MsgBox(i.ToString) 
     con.Close() 
     sql.Dispose() 
     con.Dispose() 
     ToolStripStatusLabelMessage.Text = "Saved" 
    End Sub 

とすぐに私はそれをApp.configファイルから接続文字列に接続文字列を変更すると、データを追加する(動作を停止DBへ)

Private Sub save() 
     Dim con As New SqlClient.SqlConnection(LIC.My.Settings.LICConnectionString) 

     Dim sql As New SqlClient.SqlCommand("INSERT INTO ProposerDetails " & _ 
              "VALUES (" & Convert.ToInt32(PolicyNumberTextBox.Text) & ",'" & NameTextBox.Text & "','" & AgeTextBox.Text & "','" & PhoneTextBox.Text & "','" & AddressTextBox.Text & "','" _ 
              & NomineeTextBox.Text & "','" & NomineeRelationTextBox.Text & "'," & PlanID() & ",'" & PolicyTermTextBox.Text & "','" & PremiumAmountTextBox.Text & "','" _ 
              & PremiumTypeComboBox.Text & "','" & SumProposedTextBox.Text & "','Date')", con) 

     MsgBox(sql.CommandText) 
     con.Open() 

     MsgBox(con.State.ToString) 
     Dim i As Integer = sql.ExecuteNonQuery 
     MsgBox(i.ToString) 
     con.Close() 
     sql.Dispose() 
     con.Dispose() 
     ToolStripStatusLabelMessage.Text = "Saved" 
    End Sub 

注:エラーは発生しません。

+0

あなたの2のコード例は、同一見て、あなたがハードコーディングされた接続文字列を使用します両者に。また、ちょうどヒントとして、そのような形でクエリを形成するSQLインジェクションに自分自身を開放しています。これらのSQLパラメータを使用してください! – Etch

+0

2番目の接続文字列はハードコードされていません...私はapp.configファイルから引き出しています。 –

+0

@Etchデータセット(.xsdファイル)にINSERTクエリを追加し、それをデータの挿入に使用できますか?はいの場合はどうですか?どのように私はINSERTクエリで使用されるパラメータに値を渡すのですか? –

答えて

1

ここに簡単な説明があります。

これは、設定ファイルの接続文字列を使用する方法です。

Dim sqlConn as SqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings("myConnectionString").ConnectionString) 

Here is a link to how to do a parameterized queries

+0

接続文字列を使用するには、何かをインポートする必要がありますか?私はインテリセンスで構成を取得し、ConfigurationManagerではなく、 –

+0

System.Configuration – Etch

0

ConfigurationManager.ConnectionStrings [ "LICConnectionString"]にLIC.My.Settings.LICConnectionString を変更してみてください。のConnectionString

+0

接続文字列を使用するため、何かをインポートする必要がありますか?なぜなら、私はConfigurationManagerではなくintellisenseの設定しか得ていないからです。 –

+0

はい、System.Configurationを持つ必要があります。 –

関連する問題