C# 我无法通过类在数据库中插入数据。这显示错误“;无效的列名";
你好,我在代码方面有一些问题 我使用按钮将数据从类保存到数据库,但我不断遇到错误“无效列名”,请解决我的问题 该id连接类C# 我无法通过类在数据库中插入数据。这显示错误“;无效的列名";,c#,database,winforms,C#,Database,Winforms,你好,我在代码方面有一些问题 我使用按钮将数据从类保存到数据库,但我不断遇到错误“无效列名”,请解决我的问题 该id连接类 using System; using System.Windows.Forms; using System.Data.SqlClient; using project_airline_oop.user.staft.new_member; using project_airline_oop.user.schedules_flights; namespace project
using System;
using System.Windows.Forms;
using System.Data.SqlClient;
using project_airline_oop.user.staft.new_member;
using project_airline_oop.user.schedules_flights;
namespace project_airline_oop.dbconnection
{
public static class dbconnection
{
private static bool connection;
private static string _query;
public static readonly string ConnectionString = "Data Source=LUKAAA\\SQLSERVER1;Initial Catalog=airline;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False";
public static SqlConnection GetConnection()
{
SqlConnection conn = null;
try
{
conn = new SqlConnection(ConnectionString);
return conn;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return conn;
}
public static bool insertlocalflight(local_scheduleflight ab)
{
connection = false;
using (var con = GetConnection())
{
try
{
con.Open();
_query = "insert into local_fligth_timinig (" +
"time_flightlocal," +
"local_destination," +
"flight_date," +
"local_flightname," +
"flight_no)" +
"values(" +
"@time_local," +
"@city_local," +
"@date_flight," +
"@local_airline," +
"@flight_number)";
var cmd = new SqlCommand(_query, con);
cmd.Parameters.AddWithValue("@time_local", ab.time_flightlocal);
cmd.Parameters.AddWithValue("@city_local", ab.local_destination);
cmd.Parameters.AddWithValue("@date_flight", ab.flight_date);
cmd.Parameters.AddWithValue("@local_airline", ab.local_flightname);
cmd.Parameters.AddWithValue("@flight_number",ab.flight_no);
cmd.ExecuteNonQuery();
connection = true;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
con.Close();
}
}
return connection;
}
}
}
那是我的班级
namespace project_airline_oop.user.schedules_flights
{
public class local_scheduleflight
{
public DateTime time_flightlocal { get; set; }
public string local_destination { get; set; }
public DateTime flight_date { get; set; }
public string local_flightname { get; set; }
public int flight_no { get; set; }
}
}
这就是保存按钮方法
private void save_flightloacal1_Click(object sender, EventArgs e)
{
var localflight = new user.schedules_flights.local_scheduleflight
{
time_flightlocal = flight_time1lo.Value,
local_destination = local_airport.DisplayMember,
flight_date = Date_flight.Value,
local_flightname = local_airport.DisplayMember,
flight_no = int.Parse(flight_nolocal.Text),
};
if (dbconnection.dbconnection.insertlocalflight(localflight))
{
MessageBox.Show("insert first 1 slot");
}
else``
{
MessageBox.Show("error");
}
}
那是一张桌子
column name datatype
time_local time(7)
city_local varchar(50)
date_flight date
local_airline varchar(50)
flight_number int
insert语句中的字段名
_query = "insert into local_fligth_timinig (" +
"time_flightlocal," +
"local_destination," +
"flight_date," +
"local_flightname," +
"flight_no)" +
与表中的字段名不匹配
column name datatype
time_local time(7)
city_local varchar(50)
date_flight date
local_airline varchar(50)
flight_number int
换成
_query = "insert into local_fligth_timinig (" +
"time_local," +
"city_local," +
"date_flight," +
"local_airline," +
"flight_number)" +
表名看起来也像是输入错误,但这可能是您在数据库中的拼写方式。添加准确的错误和表定义。insert语句中的一列或多列不在表中。它可能像您的表名一样输入错误:local_fligth_timinigh需要学习如何执行以下操作
1。学习参数化查询,2。将其移动到存储过程中
@MethodMan,虽然这不会通过我的代码审查,但这怎么不是一个参数化查询?这里看起来像是输入错误cmd.Parameters.AddWithValue(“@flight\u number”,ab.flight\u no)代码>但我有一个类,我想通过这个类保存数据。还可以在值中告诉我键入什么?类和变量名保持不变。只是insert语句中的数据库字段名需要更改,因此它们与数据库结构匹配。我理解您的意思,但我有点困惑。请帮我一个忙,请让我插入查询以查看我的代码,并传递值替换我告诉您要替换的6行。