-2

ボタンをクリックして実行し、データセットに出力する必要がある SQL クエリがあります。

public partial class Form1 : Form
{
    private void Form1_Load(object sender, EventArgs e)
    {
        Assembly.GetExecutingAssembly().GetName().Version.ToString();
        var line = txtLine.Text;
        var serial = txtSerial.Text;
        var station = txtStation.Text;
    }

    private void btnGo_Click(object sender, EventArgs e)
    {
        var line = txtLine.Text;
        var serial = txtSerial.Text;
        var station = txtStation.Text;

        if (txtLine.Text.Trim().Length == 0)
        {
            MessageBox.Show("Please enter a Line");
        }
        else if (txtSerial.Text.Trim().Length == 0)
        {
            MessageBox.Show("Please enter a Serial");
        }
        else if (txtStation.Text.Trim().Length == 0)
        {
            MessageBox.Show("Please enter a Station");
        }
        else
        {
            //SQL command goes here.
        }
    }
}

非ストア プロシージャとして実行し、データを dataGridView1 オブジェクトに出力する方法を知る必要がある SQL コマンドがあります。

4

1 に答える 1

0

疑似コード以上のものを示すのに十分な情報が提供されていません。ただし、using ステートメントを使用して、実装するすべてIDisposableが適切に破棄され、接続が閉じられるようにします (エラーが発生した場合でも)。

sql-parameters を使用して、SQL インジェクションと変換/ローカリゼーションの問題を回避します。

string sql = "SELECT Columns FROM dbo.TableName WHERE Column=@ParamName";
using (var con = new SqlConnection("Connection String Here"))
using (var da = new SqlDataAdapter(sql, con))
{
    da.SelectCommand.Parameters.AddWithValue("@ParamName", "Param Value");
    // other parameters
    DataTable table = new DataTable();
    da.Fill(table);
    dataGridView1.DataSource = table;             
}
于 2013-08-07T22:07:16.557 に答える