簡體   English   中英

如何修復代碼中的 SqlException 不正確的語法錯誤?

[英]How can I fix a SqlException incorrect syntax error in my code?

這是引用 SQL Server 數據庫以檢索要放入DataGridView

我收到一個錯誤:

SqlException [不正確的語法]

代碼:

private void DisplayData()
{
    adapt = new SqlDataAdapter("SELECT geoCode, cancer2004" +
                               "FROM Regional_Intel$" +
                               "WHERE geoCode LIKE '" + txtDMA.Text + "'", con);
    // cmd.Parameters.AddWithValue("@dma", txtDMA.Text);

    dt = new DataTable();
    adapt.Fill(dt);

    dataGridView1.DataSource = dt;
}

我該如何解決?

在 SQL 字符串中添加空格。 此外,使用字符串連接非常糟糕。

像這樣添加空格:

{
    adapt = new SqlDataAdapter("Select geoCode, cancer2004 " +
        "FROM Regional_Intel$ " +
        "where geoCode LIKE '" + txtDMA.Text + "'", con);
    //cmd.Parameters.AddWithValue("@dma", txtDMA.Text);
    dt = new DataTable();
    adapt.Fill(dt);
    dataGridView1.DataSource = dt;
}

使用這樣的參數:

{
    adapt = new SqlDataAdapter("Select geoCode, cancer2004 " +
        "FROM Regional_Intel$ " +
        "where geoCode LIKE @dma", con);
    adapt.SelectCommand.Parameters.Add("@dma", SqlDbType.NVarChar).Value = txtDMA.Text;
    dt = new DataTable();
    adapt.Fill(dt);
    dataGridView1.DataSource = dt;
}

分離出你的 SQL 字符串:

{
   var query = @"
SELECT geoCode, cancer2004
FROM Regional_Intel$
WHERE geoCode LIKE @dma";
    adapt = new SqlDataAdapter(query, con);
    adapt.SelectCommand.Parameters.Add("@dma", SqlDbType.NVarChar).Value = txtDMA.Text;
    dt = new DataTable();
    adapt.Fill(dt);
    dataGridView1.DataSource = dt;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM