2014-01-07 53 views
0

我在vs 2012中構建了一個應用程序,該應用程序應該能夠從sql server 2012數據庫中選擇,插入,更新和刪除信息。起初,我使用sql server將一些數據放入數據庫。我建立了我的選擇查詢來測試它們,並且它們工作。在此之後,我建立了我的插入查詢並進行了測試。它也可以。但是,如果我嘗試檢索已插入的數據,它不會檢索任何內容。在插入查詢後,選擇查詢不會從數據庫檢索信息

這是我的選擇查詢的一個示例:

query = "SELECT P.Denumire, P.Pret, P.Cantitate, P.Reducere, P.Pret_redus, " + 
       "S.Stoc_magazin, S.Stoc_depozit " + 
      "FROM Produse P, Stoc_intern S " + 
      "WHERE S.ID_produs IN " + 
       "(SELECT P.ID_produs " + 
        "FROM Produse " + 
        "WHERE P.Denumire LIKE '%" + tb_s_name.Text + "%')"; 
    SqlDataAdapter da = new SqlDataAdapter(query, c); 
    SqlCommandBuilder cb = new SqlCommandBuilder(da); 
    DataTable dt = new DataTable(); 
    da.Fill(dt); 
    q_res.DataSource = dt; 

下面是和例如我插入查詢之一:

query = "Insert INTO Produse " + 
       "(Denumire, Pret, Cantitate, Reducere) " + 
       "Values(@Denumire, @Pret, @Cantitate, @Reducere)"; 
    SqlCommand cmd = c.CreateCommand(); 
    cmd.Connection = c; 
    cmd.CommandText = query; 
    cmd.Parameters.Add("@Denumire", SqlDbType.NVarChar, 50).Value = tb_op_name.Text; 
    cmd.Parameters.Add("@Pret", SqlDbType.Float).Value = tb_op_pv.Text; 
    cmd.Parameters.Add("@Cantitate", SqlDbType.NVarChar, 50).Value = tb_op_cantitate.Text; 
    cmd.Parameters.Add("@Reducere", SqlDbType.Float).Value = tb_op_red.Text; 
    cmd.ExecuteNonQuery(); 

兩個查詢工作,它只是如果我提交插入查詢並在嘗試選擇某個選擇查詢後,儘管信息存在於數據庫中,但它不檢索任何內容。我檢查通過在我的VS內置應用程序執行插入查詢後打開SQL服務器中的數據庫。

這裏的連接字符串也:

SqlConnection c = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=" + Application.StartupPath + @"\DB\Supermarket.mdf;Integrated Security=True;MultipleActiveResultSets=true;Connect Timeout=30"); 
+0

您能向我們展示您正在使用的**連接字符串**嗎? –

+1

使用int i = cmd.ExecuteNonQuery();運行後檢查I的值。如果它爲零,則不插入行。 –

+0

我添加了連接字符串@marc_s。我驗證了執行後cmd.ExecuteNonQuery()具有的值,它是1,因此一行受到影響,就像我說的那樣,插入工作。選擇不檢索插入的內容。 –

回答

0

請使用不同SqlConnections的每一道工序。