2016-03-29 37 views
-4

嗨即時嘗試插入數據到我的數據庫。該程序運行,但它永遠不會保存值!C#學習使用Sql命令INSERT

繼承人的代碼:

using System.Data.SqlClient; 

namespace Database_1._0 
{ 
public partial class Form1 : Form 
{ 
    SqlConnection cn = new SqlConnection(@"DataSource=LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Luis\documents\visual studio 2015\Projects\Database_1._0\Database_1._0\DB.mdf;Integrated Security=True"); 
    SqlCommand cmd = new SqlCommand(); 
    SqlDataReader dr; 

    DateTime dateTime = DateTime.UtcNow.Date; 
    string user = "1614258779876465426"; 
    string pass = "3Cp5CeXrfghdfght"; 
    string frecuencyCode = "ANNUAL"; 

    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     cmd.Connection = cn; 
    } 

    private void logo_Click(object sender, EventArgs e) 
    { 
     MessageBox.Show("Database_1._0 \nWritten by: Luis", "About"); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 

     cn.Open(); 
     using (SieteWS SieteWS = new SieteWS()) 
     {     
      Respuesta respuesta = SieteWS.SearchSeries(user, pass, frecuencyCode); 
      foreach (internetSeriesInfo seriesInfo in respuesta.SeriesInfos) 
      { 

       cmd.CommandText = "INSERT INTO [dbo].[Serie] ([SerieID], [SerieName], [SerieFrecuency]) VALUES (@SerieID, @SerieName, @SerieFrecuency)"; 
       cmd.Parameters.AddWithValue("@SerieID", seriesInfo.seriesId); 
       cmd.Parameters.AddWithValue("@SerieName", seriesInfo.spanishTitle); 
       cmd.Parameters.AddWithValue("@SerieFrecuency", seriesInfo.frequency); 
       cmd.ExecuteNonQuery(); 
       cn.Close(); 
      } 
     } 
    } 
} 
} 

和錯誤說: errorCS0103: 'CommandText中' 這個名字並不在目前的情況下存在。當我使用手錶時,我發現這個:cmd.CommandText =「」; 。請有人告訴我什麼是我做錯了請。

+6

哪一行代碼顯示錯誤?這是*編譯器*錯誤,這意味着您的「程序運行」聲明完全是錯誤的。請明確指出代碼的*實際錯誤*和*實際行爲*。 – David

+1

另請注意,您正在關閉連接_inside loop_,因此只有一條記錄會被更新。最好使用'using'語句創建連接和命令,只有當所有內容完成時才關閉它們。 –

+0

第一次通過你的'foreach'循環關閉你的連接。 – Brandon

回答

0

所以首先。在循環之外移動cn.Close();。如果現在不是你的問題的原因,它會在稍後導致問題。

如果這樣不能解決您的問題,請再仔細查看。

這只是在給我的資料黑暗中捅,但嘗試運行下面的代碼集(foreach循環內),看看其中是否工作:

設置1:

cmd = new SqlCommand("INSERT INTO [dbo].[Serie] ([SerieID], [SerieName], [SerieFrecuency]) 
VALUES ('"+seriesInfo.seriesId+"', '"+seriesInfo.spanishTitle+"' 
     , '"+seriesInfo.frequency+"')", cn); 
cmd.ExecuteNonQuery(); 

盤2:

cmd = new SqlCommand("INSERT INTO [dbo].[Serie] ([SerieID], [SerieName], [SerieFrecuency]) 
VALUES (@SerieID, @SerieName, @SerieFrecuency)", cn); 
cmd.Parameters.AddWithValue("@SerieID", seriesInfo.seriesId); 
cmd.Parameters.AddWithValue("@SerieName", seriesInfo.spanishTitle); 
cmd.Parameters.AddWithValue("@SerieFrecuency", seriesInfo.frequency); 

讓我知道它是如何工作

+0

第2組工作正常:D。感謝您的'cn.Close()'建議順便說一句。並再次感謝你!! –

-2

試試這個......

修改下面的行以包含數據庫的名稱。 [Serie],[Serie],[SerieName],[SerieFrecuency])[數值名稱]。[dbo]。[Serie]

cmd.CommandText =「INSERT INTO [dbo]。[Serie]([SerieID],[SerieName],[SerieFrecuency])VALUES (@SerieID,@SerieName,@SerieFrecuency)「;

您的默認數據庫可能未包含您的「意甲」表中它的人。

+0

u.u nop。該表保持爲空:/ –