C#学习使用Sql命令插入

C#学习使用Sql命令插入,c#,sql,database,C#,Sql,Database,嗨,我正在尝试将数据插入我的数据库。程序运行,但它从不保存值 代码如下: 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\v

嗨,我正在尝试将数据插入我的数据库。程序运行,但它从不保存值

代码如下:

 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=“”。有人能告诉我我做错了什么吗?

试试这个

修改下面的行以包含数据库的名称。因此它将读取[您的数据库名称].[dbo].[Serie]

cmd.CommandText=“插入[dbo].[Serie]([SerieID]、[SerieName]、[SerieFrecution])值(@SerieID、@SerieName、@SerieFrecution)”


您的默认数据库可能不是包含“Serie”表的数据库。

因此首先。移动
cn.Close()在循环之外。如果这不是你现在问题的原因,那么它会在以后引起问题

如果这不能解决您的问题,请进一步查看

鉴于我掌握的信息,这只是一个暗中摸索,但请尝试运行以下代码集(在foreach循环中),看看它们是否有效:

设置1:

cmd = new SqlCommand("INSERT INTO [dbo].[Serie] ([SerieID], [SerieName], [SerieFrecuency]) 
 VALUES ('"+seriesInfo.seriesId+"', '"+seriesInfo.spanishTitle+"'
         , '"+seriesInfo.frequency+"')", cn);
cmd.ExecuteNonQuery();
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);
第二组:

cmd = new SqlCommand("INSERT INTO [dbo].[Serie] ([SerieID], [SerieName], [SerieFrecuency]) 
 VALUES ('"+seriesInfo.seriesId+"', '"+seriesInfo.spanishTitle+"'
         , '"+seriesInfo.frequency+"')", cn);
cmd.ExecuteNonQuery();
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);

让我知道它是如何工作的

哪行代码显示了该错误?这是一个编译器错误,这意味着您的“程序运行”语句是完全错误的。请清楚地指出代码的实际错误和实际行为。还要注意,您正在关闭循环内的连接,因此只有一条记录会被更新。最好使用
语句创建连接和命令,只有在一切都完成后才关闭它们。第一次通过
foreach
循环时,您的连接就关闭了。@David Im sorry位于cmd.CommandText=“INSERT INTO[dbo].[Serie]([SerieID],[SerieName],[seriefreecurity])值中(SerieID,SerieName,SerieFrequence)”;部分。我使用一个检查点并在那里添加一个手表,我得到以下结果:errorCS0103:名称“CommandText”在当前上下文中不存在。如果不这样做,程序只会以“fine”结束但是我在数据库中的表仍然是空的。@LuisDanielAparicio:这一错误对于这一行代码来说没有意义。很可能您在这里混淆了一些东西。要么这不是实际的代码,要么这不是实际的错误。u.u不。表仍然是空的:/Set 2工作正常:D。谢谢您的'cn.Close()“顺便说一句,谢谢你!!”!!。