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()“顺便说一句,谢谢你!!”!!。