Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我无法通过类在数据库中插入数据。这显示错误“;无效的列名";_C#_Database_Winforms - Fatal编程技术网

C# 我无法通过类在数据库中插入数据。这显示错误“;无效的列名";

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

你好,我在代码方面有一些问题 我使用按钮将数据从类保存到数据库,但我不断遇到错误“无效列名”,请解决我的问题

该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_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行。