gpt4 book ai didi

c# - 插入后数据库中只插入了 "string"的一个字符

转载 作者:太空狗 更新时间:2023-10-29 20:44:43 25 4
gpt4 key购买 nike

下面是我的表格截图: Main table design

插入后的数据 Data after insertion

C# 代码

SqlConnection con = new SqlConnection(connectionsession.Con);
con.Open();
SqlCommand cmd = new SqlCommand("finalinsert", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@fid", SqlDbType.Int)).Value = flightsession.Sflightid;
cmd.Parameters.Add(new SqlParameter("@fcid", SqlDbType.Int)).Value = flightsession.Sflightcostid;
cmd.Parameters.Add(new SqlParameter("@ftid", SqlDbType.Int)).Value = flightsession.Sflighttimingid;
cmd.Parameters.Add(new SqlParameter("@frdn", SqlDbType.Date)).Value = DateTime.Now.ToString("dd-MM-yyyy");
cmd.Parameters.Add(new SqlParameter("@ford", SqlDbType.Date)).Value = flightsession.Regdate;
cmd.Parameters.Add(new SqlParameter("@uid", SqlDbType.Int)).Value = loginsession.Auser;
cmd.Parameters.Add(new SqlParameter("@paid", SqlDbType.Int)).Value = "1";
cmd.Parameters.Add(new SqlParameter("@source", SqlDbType.VarChar)).Value = flightsession.Sscource;
cmd.Parameters.Add(new SqlParameter("@destination", SqlDbType.VarChar)).Value = flightsession.Sdestination;
cmd.Parameters.Add(new SqlParameter("@fn", SqlDbType.VarChar)).Value = flightsession.Sflightname;
cmd.Parameters.Add(new SqlParameter("@fc", SqlDbType.VarChar)).Value = flightsession.Total;
cmd.Parameters.Add(new SqlParameter("@fty", SqlDbType.VarChar)).Value = flightsession.Stype;
cmd.Parameters.Add(new SqlParameter("@fcl", SqlDbType.VarChar)).Value = flightsession.Sflightclass;
cmd.Parameters.Add(new SqlParameter("@ft", SqlDbType.Time)).Value =flightsession.Sflighttime;
cmd.ExecuteNonQuery();
MessageBox.Show("Succesful");
con.Close();
flightreceipt ob18 = new flightreceipt();
ob18.ShowDialog();
this.Hide();

在SQL Server 2008中创建过程的代码

ALTER procedure [dbo].[finalinsert] @fid int,@fcid int,@ftid int,@frdn date,@ford date,@uid int,
@paid int,@source varchar,@destination varchar,@fc varchar,@fty varchar,@fcl varchar,@ft time(7) ,@fn varchar
AS
INSERT INTO [shangrila].[dbo].[flight_reg_table]
([flight_id]
,[flight_cost_id]
,[flight_time_id]
,[flight_reg_date_now]
,[flight_on_reg_date]
,[user_id]
,[paid]
,[source]
,[destination]
,[flight_name]
,[flight_cost]
,[flight_type]
,[flight_class]
,[flight_time])
VALUES
(@fid,
@fcid,
@ftid,
@frdn,
@ford,
@uid,
@paid,
@source,
@destination,
@fn,
@fc,
@fty,
@fcl,
@ft)

我试着找出原因!但我被困住了。记住我插入的所有格式都是字符串。谢谢。

最佳答案

在您的存储过程中,您的 VARCHAR 需要有一个与其关联的长度,例如 VARCHAR(50)。默认长度为 1,因此 SQL 仅向存储过程发送一个字符。

ALTER procedure [dbo].[finalinsert]     @fid int    ,@fcid int    ,@ftid int    ,@frdn date     ,@ford date    ,@uid int    ,@paid int    ,@source varchar(50)    ,@destination varchar(50)    ,@fc varchar(50)    ,@fty varchar(50)    ,@fcl varchar(50)    ,@ft time(7)    ,@fn varchar(50)AS

您可能还需要更改调用中的数据类型以包含长度,但 ADO.NET 可能可以正确处理它。

关于c# - 插入后数据库中只插入了 "string"的一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5613467/

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