gpt4 book ai didi

c# - 本地数据库插入查询不执行任何操作

转载 作者:太空宇宙 更新时间:2023-11-03 15:48:03 26 4
gpt4 key购买 nike

我正在尝试向数据库中插入一行。以下是我的查询:

using (SqlConnection conn = new SqlConnection("Data Source = (LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Traindata.mdf;Integrated Security=True"))
{
string query = "INSERT INTO dbo.Station (Naam, X, Y, Sporen) VALUES (@naam, @x, @y, @sporen)";

using (SqlCommand command = new SqlCommand(query, conn))
{
command.Parameters.AddWithValue("@naam", insert[1]);
command.Parameters.AddWithValue("@x", insert[2]);
command.Parameters.AddWithValue("@y", insert[3]);
command.Parameters.AddWithValue("@sporen", insert[4]);
conn.Open();
try
{
command.ExecuteNonQuery();
}
catch (SqlException exc)
{
Console.WriteLine("Error to save on database");
Console.WriteLine(exc.Message);
}
conn.Close();
}
}

当我运行它时没有任何反应(也没有 SQL 错误)。我究竟做错了什么?如果这是一个愚蠢的问题,我很抱歉,我只是一个初学者。

这应该有效(我已经用一个有效的选择查询测试了它)。

最佳答案

您是否尝试过将查询存储在存储过程中并从 C# 中调用它? ... 这实际上比通过 C# 代码中的硬代码进行查询更容易 ... 只需创建一个存储过程来执行您想要它执行的任何操作,然后从 C# 调用它并添加参数。它应该看起来像这样:

                SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["Your_Conection_String_s_Name"].ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "dbo.Your_Stored_Procedure";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@Input_Param_1", SqlDbType.VarChar, 18).Value = "C#_Parameter1";
cmd.Parameters.Add("@Input_Param_2", SqlDbType.VarChar, 45).Value = "C#Parameter_2";
cmd.Parameters.Add("@Input_Param_3", SqlDbType.VarChar, 45).Value = "C#Parameter_3";
cmd.Parameters.Add("@Input_Param_4", SqlDbType.Text).Value = "C#Parameter_4";
cmd.Parameters.Add("@Input_Param_5", SqlDbType.VarChar, 45).Value = "C#Parameter_5";
cmd.Parameters.Add("@Output_Parameter_1", SqlDbType.VarChar, 250).Direction = ParameterDirection.Output;
cmd.Parameters.Add("@Output_Parameter_2", SqlDbType.DateTime).Direction = ParameterDirection.Output;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
"C#Output_Parameter_1" = "" + cmd.Parameters["@Output_Parameter_1"].Value;
"C#Output_Parameter_2" = "" + cmd.Parameters["@Output_Parameter_2"].Value;

希望对您有所帮助。

关于c# - 本地数据库插入查询不执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27254909/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com