2013-02-26 2 views
3

При нажатии Buttonничего обновлений в таблице SQL и нет ошибок дисплей.SQL Вставка не работает

protected void SubmitBTN_Click(object sender, EventArgs e) 
{ 
    SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Matt\Documents\coffeeShop.mdf;Integrated Security=True;Connect Timeout=30"); 

    String coffeeName = NameTXT.Text; 
    String coffeeGrid = GrindTXT.Text; 
    String coffeeOrigin = OriginTXT.Text; 
    String coffeePrice = PriceTXT.Text; 
    String coffeeQty = QuantityTXT.Text; 
    String coffeeRRP = RRPTXT.Text; 

    SqlCommand comm = new SqlCommand("INSERT INTO Table (coffeeName, coffeeGrid, coffeeOrigin, coffeePrice, coffeeQty, coffeeRRP) VALUES ('%" + coffeeName + "%','%" + coffeeGrid + "%','%" + coffeeOrigin + "%','%" + coffeePrice + "%','%" + coffeeGrid + "%','%" + coffeeQty + "%','%" + coffeeRRP + "%' ", conn); 

    conn.Open(); 
    //SqlDataReader reader = comm.ExecuteReader(); 

    //lblDBData.Text += "<table border=0>"; 
    //while (reader.Read()) 
    //{ 
    // lblDBData.Text += "<tr>"; 
    // lblDBData.Text += "<td>" + reader["coffeeName"] + "</td>"; 
    // lblDBData.Text += "</tr>"; 
    //} 
    //lblDBData.Text += "</table>"; 

    //reader.Close(); 
    conn.Close();      
} 

Любые советы были бы оценены, Большое спасибо

+0

ли вы испробовали выполнение кода в SQL это работает там или выдает ошибку, пожалуйста, проверьте его – NetStarter

+0

Вы не 't выполнить команду ... –

+1

@Soner Gönül почему пару раз? –

ответ

4

Добавить:

comm.ExecuteNonQuery();

После:

conn.Open();

Кстати, вы хотели бы использовать параметры вместо " + parameter + " по запросу, чтобы избежать SQL Injection. Прочитайте это:

http://www.csharp-station.com/Tutorial/AdoDotNet/Lesson06

+2

Это должно быть необходимо прочитать, прежде чем вы сможете коснуться базы данных. – MikeTheLiar

0

Вы не можете прочитать инструкцию вставки. Вы должны использовать comm.executeNonQuery() для выполнения команды insert, а затем сделать новый оператор выбора для чтения данных.

2

Вам необходимо выполнить команду as;

conn.Open(); //Open the connection to the database 
comm.ExecuteNonQuery(); //This line does the insert 
conn.Close(); //Close the connection once your command executed. 

Также подумайте о параметризованных запросов и открыть объект соединения в using блоке как хорошая практика, чтобы не оставлять объекты открытого соединения.

Ex;

using(SqlConnection conn = new SqlConnection("connectionString")) 
{ 
    SqlCommand cmd = new SqlCommand("your query string with @para", conn); 
    cmd.Parameters.AddWithValue("@para", "value"); 
    conn.Open(); 
    cmd.ExecuteNonQuery(); 

} 
Смежные вопросы