Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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语言中插入数据#_C#_Sql Server - Fatal编程技术网

C# 在c语言中插入数据#

C# 在c语言中插入数据#,c#,sql-server,C#,Sql Server,SQL Server数据库表为: inward_id, int(Primary Key), gate_inward_done, varchar(50), gate_entry_no, varchar(100), gate_entry_date, date, inward_date, date, vendor_code, varchar(max), vendor_name, varchar(max), dc_no, varchar(max), dc_date, date, bill_receive

SQL Server数据库表为:

inward_id, int(Primary Key),
gate_inward_done, varchar(50),
gate_entry_no, varchar(100),
gate_entry_date, date,
inward_date, date,
vendor_code, varchar(max),
vendor_name, varchar(max),
dc_no, varchar(max),
dc_date, date,
bill_received, varchar(max),
invoice_no, varchar(max),
invoice_date, date,
inv_total_amount, numeric(18,2),
gst_applicable, varchar(max),
cgst, numeric(18,2),
sgst, numeric(18,2),
igst, numeric(18,2),
inv_net_amount, numeric(18,2),
nu_freight, numeric(18,2),
fraction_amount, numeric(18,2),
approvar_department, varchar(max),
vc_remarks_master, varchar(max)
当我在C#应用程序中按save按钮时,数据未保存在数据库中,并显示错误“将数据varchar转换为数字”

这是我的代码:

SqlCommand cmd1 = con.CreateCommand();
cmd1.CommandType = CommandType.Text;
cmd1.CommandText = "INSERT INTO inward_master values ('"+cmbGateEntry.Text+"','"+txtGateEntryNo.Text+"','"+dtpGateEntryDate.Value.ToString("yyyy-MM-dd")+"','"+dtpInwardDate.Value.ToString("yyyy-MM-dd")+"','"+cmbVendorCode.Text+"','"+txtVendorName.Text+"','"+txtDcNo.Text+"','"+dtpDcDate.Value.ToString("yyyy-MM-dd") +"','"+cmbbill_received.Text+"','"+txtInvoice_No.Text+"','"+dtpInvoiceDate.Value.ToString("yyyy-MM-dd") +"','"+ txtinv_total_amount.Text +"','"+cmbgst_applicable.Text+"','" + txtcgst.Text + "','" + txtsgst.Text + "','" + txtigst.Text + "','" + txtinv_net_amount.Text + "','" + txtnu_freight.Text + "', '" + txtfraction_amount.Text + "','"+cmbApproverDept.Text+"','"+txtvc_remarks_master.Text+"')";

cmd1.ExecuteNonQuery();}

请给出解决方案。提前感谢。

A对于查询,使用
连接是一种不好的做法。使用参数化方法比您正在使用的方法更好、更干净

B错误明确表示您正在尝试向数字列插入字符串值,在您的情况下,您使用了
'“+txtfract\u amount.Text+”
,它应该是
“+txtfract\u amount.Text+”
(删除了用于字符串的单引号)因为它是一个数值(这只是一个示例,请更正查询,它将正常工作)


是参数化查询的一个很好的示例/说明。

如果向内\u id是自动递增的,则必须使用以下选项:

INSERT INTO inward_master (fields....) VALUES(values...)

大家好,请帮我填写向内的id?向内的id是自动递增的id?好的,请用。目前,您的代码容易受到SQL注入和“意外行为”的攻击。请使用命名参数,而不是串联字符串。