2016-11-01 19 views
0

データベースの接続が正常に作成されましたが、データの挿入に問題があります。ここに私のコードは次のとおりです。sqlからC#へのデータ挿入

String Connection = null; 
SqlConnection con; 
SqlCommand cmd; 
String sql = null; 
Connection="Data Source=DELL\\SQLEXPRESS; initial Catalog= BSSE;Integrated Security=True"; 
con = new SqlConnection(Connection); 
sql = "INSERT INTO Records (Roll_No,Name,Marks) VALUES (" + textBox1.Text + "," + textBox2.Text + "," + textBox3.Text + ");"; 
try 
{ 
    con.Open(); 
    cmd = new SqlCommand(sql, con); 
    cmd.ExecuteNonQuery(); 
    MessageBox.Show ("Success of data insertion "); 
    cmd.Dispose(); 
    con.Close(); 
} 
catch (Exception ex) 
{ 
    MessageBox.Show("Can not open connection ! "); 
} 
+0

まあ、SQLインジェクションの問題とも間違ったSQL ... – Prisoner

+0

たぶん、あなたはこの1つ勉強することができますhttp://stackoverflow.com/a/5480368/1050927 – Prisoner

答えて

1

まず、SQL文が正しくありません。値の間に一重引用符がありません。後で、文字列連結を使用してSQL文を作成します。これはSQL Injectionに公開される可能性があるため危険です。代わりにParameterized Queryを使用してください。

try 
{ 
    con.Open(); 
    cmd = new SqlCommand("INSERT INTO Records (Roll_No,Name,Marks) VALUES (@rollNo, @Name, @Marks)", con); 
    cmd.Parameters.AddWithValue("@rollNo", textBox1.Text); 
    cmd.Parameters.AddWithValue("@Name", textBox2.Text); 
    cmd.Parameters.AddWithValue("@Marks", textBox3.Text); 
    cmd.ExecuteNonQuery(); 

    MessageBox.Show ("Success of data insertion "); 
    cmd.Dispose(); 
    con.Close(); 
} 
catch (Exception ex) 
{ 
    MessageBox.Show("Can not open connection ! "); 
} 
+0

おかげで多くのことを。これは機能しています。 – Iqra

+0

ようこそ。緑のダニをチェックして答えにしてください。 – Hermanto

0
  • あなたの接続文字列を確認してください。私は通常次のように書いています:

    文字列接続= @ "データソース= DELL \ SQLEXPRESS;初期カタログ= BSSE;統合セキュリティ= true";

  • ロール番号が整数であると仮定すると、 を解析する必要があります。

    int.Parse(textBox1.Text)

0

私はここに、代わりにC#アプリケーションからSQLコードのブロックを送信するストアドプロシージャを使用することをお勧めは、SQLストアドプロシージャへの参照です:https://msdn.microsoft.com/en-us/library/ms190782.aspx。 SQLインジェクションの可能性を減らすには、プレーンテキストではなくクエリにパラメータを追加し、入力を検証する必要があります。パラメータを使用して呼び出しを作成することもできます。 C#からSQLデータベースクエリを呼び出す方法はたくさんありますが、ここに手がかりを与えるストアプロシージャの詳細があります。http://csharp-station.com/Tutorial/AdoDotNet/Lesson07

関連する問題