Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.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#/SQL Server_C#_Sql_Sql Server_Visual Studio_Syntax Error - Fatal编程技术网

无法转换参数C#/SQL Server

无法转换参数C#/SQL Server,c#,sql,sql-server,visual-studio,syntax-error,C#,Sql,Sql Server,Visual Studio,Syntax Error,获取错误: 无法将参数值从字符串转换为Int32 我为我的表单编写代码,最后当运行代码时,我得到一个错误。我试图改变一切,但任何交换都会给我同样的错误 我的代码: const string sqlText = "INSERT INTO dbo.bd_formular(facultate,domeniul,specializare,forma_invatamant,d_inscriere,nume_prenume,cod,localitate,judet,tara,strada,numar,bl

获取错误:

无法将参数值从字符串转换为Int32

我为我的表单编写代码,最后当运行代码时,我得到一个错误。我试图改变一切,但任何交换都会给我同样的错误

我的代码:

const string sqlText = "INSERT INTO dbo.bd_formular(facultate,domeniul,specializare,forma_invatamant,d_inscriere,nume_prenume,cod,localitate,judet,tara,strada,numar,bloc,scara,etaj,apartament,sector,cod_p,data_nasterii,locul_nasterii,judet_n,tara_n,sex,stare_civila,cetatenie,cetatenie_op,etnie,incadrare,cnp,serie,numar_cnp,eliberat,e_data,studii_preuni,nume_unitate,spec_fili_profil,oras_s,judet_s,tara_s,forma_de_invatamant,medie_bac,durata_studii,data_absolvirii,tipul_diploma,seria_diploma,numarul_diploma,emis_de_catre,data_emiterii,nr_foi_matricole,introducere_date,semnatura) VALUES (@facultate,@domeniul,@specializare,@forma_invatamant,@d_inscriere,@nume_prenume,@cod,@localitate,@judet,@tara,@strada,@numar,@bloc,@scara,@etaj,@apartament,@sector,@cod_p,@data_nasterii,@locul_nasterii,@judet_n,@tara_n,@sex,@stare_civila,@cetatenie,@cetatenie_op,@etnie,@incadrare,@cnp,@serie,@numar_cnp,@eliberat,@e_data,@studii_preuni,@nume_unitate,@spec_fili_profil,@oras_s,@,@judet_s,@tara_s,@forma_de_invatamant,@medie_bac,@durata_studii,@data_absolvirii,@tipul_diploma,@seria_diploma,@numarul_diploma,@emis_de_catre,@data_emiterii,@nr_foi_matricole,@introducere_date,@semnatura)";

using (var con = new SqlConnection(SqlConnectionString))
using (var comm = new SqlCommand(sqlText, con))
{
    comm.Parameters.Add(new SqlParameter("@facultate", SqlDbType.VarChar) { Value = C1.Text });
    comm.Parameters.Add(new SqlParameter("@domeniul", SqlDbType.VarChar) { Value = T1.Text });
    comm.Parameters.Add(new SqlParameter("@specializare", SqlDbType.VarChar) { Value = T2.Text });
    comm.Parameters.Add(new SqlParameter("@forma_invatamant", SqlDbType.VarChar) { Value = C2.Text });
    comm.Parameters.Add(new SqlParameter("@d_inscriere", SqlDbType.Date) { Value = DTP1.Value.ToString() });
    comm.Parameters.Add(new SqlParameter("@nume_prenume", SqlDbType.VarChar) { Value = T3.Text });
    comm.Parameters.Add(new SqlParameter("@cod", SqlDbType.Int) { Value = T4.Text });
    comm.Parameters.Add(new SqlParameter("@localitate", SqlDbType.VarChar) { Value = T5.Text });
    comm.Parameters.Add(new SqlParameter("@judet", SqlDbType.VarChar) { Value = T6.Text });
    comm.Parameters.Add(new SqlParameter("@tara", SqlDbType.VarChar) { Value = T7.Text });
    comm.Parameters.Add(new SqlParameter("@strada", SqlDbType.VarChar) { Value = T8.Text });
    comm.Parameters.Add(new SqlParameter("@numar", SqlDbType.Int) { Value = T9.Text });
    comm.Parameters.Add(new SqlParameter("@bloc", SqlDbType.VarChar) { Value = T10.Text });
    comm.Parameters.Add(new SqlParameter("@scara", SqlDbType.VarChar) { Value = T11.Text });
    comm.Parameters.Add(new SqlParameter("@etaj", SqlDbType.Int) { Value = T12.Text });
    comm.Parameters.Add(new SqlParameter("@apartament", SqlDbType.Int) { Value = T13.Text });
    comm.Parameters.Add(new SqlParameter("@sector", SqlDbType.VarChar) { Value = T14.Text });
    comm.Parameters.Add(new SqlParameter("@cod_p", SqlDbType.Int) { Value = T15.Text });
    comm.Parameters.Add(new SqlParameter("@data_nasterii", SqlDbType.Date) { Value = DTP2.Value.ToString() });
    comm.Parameters.Add(new SqlParameter("@locul_nasterii", SqlDbType.VarChar) { Value = T16.Text });
    comm.Parameters.Add(new SqlParameter("@judet_n", SqlDbType.VarChar) { Value = T17.Text });
    comm.Parameters.Add(new SqlParameter("@tara_n", SqlDbType.VarChar) { Value = T18.Text });
    comm.Parameters.Add(new SqlParameter("@sex", SqlDbType.VarChar) { Value = C3.Text });
    comm.Parameters.Add(new SqlParameter("@stare_civila", SqlDbType.VarChar) { Value = C4.Text });
    comm.Parameters.Add(new SqlParameter("@cetatenie", SqlDbType.VarChar) { Value = C5.Text });
    comm.Parameters.Add(new SqlParameter("@cetatenie_op", SqlDbType.VarChar) { Value = T19.Text });
    comm.Parameters.Add(new SqlParameter("@etnie", SqlDbType.VarChar) { Value = T20.Text });
    comm.Parameters.Add(new SqlParameter("@incadrare", SqlDbType.VarChar) { Value = C6.Text });
    comm.Parameters.Add(new SqlParameter("@cnp", SqlDbType.Int) { Value = T21.Text });
    comm.Parameters.Add(new SqlParameter("@serie", SqlDbType.VarChar) { Value = T22.Text });
    comm.Parameters.Add(new SqlParameter("@numar_cnp", SqlDbType.Int) { Value = T23.Text });
    comm.Parameters.Add(new SqlParameter("@eliberat", SqlDbType.VarChar) { Value = T24.Text });
    comm.Parameters.Add(new SqlParameter("@e_data", SqlDbType.Date) { Value = DTP3.Value.ToString() });
    comm.Parameters.Add(new SqlParameter("@studii_preuni", SqlDbType.VarChar) { Value = C7.Text });
    comm.Parameters.Add(new SqlParameter("@nume_unitate", SqlDbType.VarChar) { Value = T25.Text });
    comm.Parameters.Add(new SqlParameter("@spec_fili_profil", SqlDbType.VarChar) { Value = T26.Text });
    comm.Parameters.Add(new SqlParameter("@oras_s", SqlDbType.VarChar) { Value = T27.Text });
    comm.Parameters.Add(new SqlParameter("@judet_s", SqlDbType.VarChar) { Value = T28.Text });
    comm.Parameters.Add(new SqlParameter("@tara_s", SqlDbType.VarChar) { Value = T29.Text });
    comm.Parameters.Add(new SqlParameter("@forma_de_invatamant", SqlDbType.VarChar) { Value = C8.Text });
    comm.Parameters.Add(new SqlParameter("@medie_bac", SqlDbType.Decimal) { Value = T30.Text });
    comm.Parameters.Add(new SqlParameter("@durata_studii", SqlDbType.Int) { Value = C9.Text });
    comm.Parameters.Add(new SqlParameter("@data_absolvirii", SqlDbType.Date) { Value = DTP4.Value.ToString() });
    comm.Parameters.Add(new SqlParameter("@tipul_diploma", SqlDbType.VarChar) { Value = C10.Text });
    comm.Parameters.Add(new SqlParameter("@serie_diploma", SqlDbType.VarChar) { Value = T31.Text });
    comm.Parameters.Add(new SqlParameter("@numar_diploma", SqlDbType.Int) { Value = T32.Text });
    comm.Parameters.Add(new SqlParameter("@emis_de_catre", SqlDbType.VarChar) { Value = T33.Text });
    comm.Parameters.Add(new SqlParameter("@data_emiterii", SqlDbType.Date) { Value = DTP5.Value.ToString() });
    comm.Parameters.Add(new SqlParameter("@nr_foi_matricole", SqlDbType.VarChar) { Value = T34.Text });
    comm.Parameters.Add(new SqlParameter("@introducere_date", SqlDbType.VarChar) { Value = T35.Text });
    comm.Parameters.Add(new SqlParameter("@semnatura", SqlDbType.VarChar) { Value = T36.Text });

    con.Open();
    comm.ExecuteNonQuery();
}
SQL Server表结构:

CREATE TABLE [dbo].[tabela_form] 
(
    [facultate]               VARCHAR (100)  NOT NULL,
    [domeniul]                VARCHAR (100)  NOT NULL,
    [specializare]            VARCHAR (100)  NOT NULL,
    [forma_invatamant]        VARCHAR (100)  NOT NULL,
    [d_inscriere]             DATE           NOT NULL,
    [nume_prenume]            VARCHAR (50)   NOT NULL,
    [cod]                     VARCHAR (10)   NOT NULL,
    [localitate]              VARCHAR (20)   NOT NULL,
    [judet]                   VARCHAR (20)   NOT NULL,
    [tara]                    VARCHAR (20)   NOT NULL,
    [strada]                  VARCHAR (15)   NOT NULL,
    [numar]                   INT            NOT NULL,
    [bloc]                    VARCHAR (5)    NOT NULL,
    [scara]                   VARCHAR (5)    NOT NULL,
    [etaj]                    INT            NOT NULL,
    [apartament]              INT            NOT NULL,
    [sector]                  VARCHAR (1)    NOT NULL,
    [cod_p]                   INT            NOT NULL,
    [data_nasterii]           DATE           NOT NULL,
    [locul_nasterii]          VARBINARY (50) NOT NULL,
    [judet_n]                 VARCHAR (15)   NOT NULL,
    [tara_n]                  VARCHAR (15)   NOT NULL,
    [sex]                     VARCHAR (7)    NOT NULL,
    [stare_civila]            VARCHAR (50)   NOT NULL,
    [cetatenie]               VARCHAR (50)   NOT NULL,
    [cetatenie_op]            VARCHAR(50)            NULL,
    [etnie]                   VARCHAR (50)   NOT NULL,
    [incadrare]               VARCHAR (50)   NULL,
    [cnp]                     INT            NOT NULL,
    [serie]                   VARCHAR (2)    NOT NULL,
    [numar_cnp]               INT            NOT NULL,
    [eliberat]                VARCHAR (10)   NOT NULL,
    [e_data]                  DATE           NOT NULL,
    [studii_preuni]           VARCHAR (20)   NOT NULL,
    [nume_unitate]            VARCHAR (30)   NOT NULL,
    [spec_fili_profil]        VARCHAR (20)   NOT NULL,
    [oras_s]                  VARCHAR (15)   NOT NULL,
    [judet_s]                 VARCHAR (15)   NOT NULL,
    [tara_s]                  VARCHAR (15)   NOT NULL,
    [forma_de_invatamant]     VARCHAR (30)   NOT NULL,
    [medie_bac]               DECIMAL (2, 2) NOT NULL,
    [durata_studii]           INT            NOT NULL,
    [data_absolvirii]         DATE           NOT NULL,
    [tipul_diploma]           VARCHAR (50)   NOT NULL,
    [seria_diploma]           VARCHAR (10)   NOT NULL,
    [numarul_diploma]         INT            NOT NULL,
    [emis_de_catre]           VARCHAR (100)  NOT NULL,
    [data_emiterii]           DATE           NOT NULL,
    [nr_foi_matricole]        INT            NOT NULL,
    [introducere_date]        VARCHAR (30)   NOT NULL,
    [semnatura]               VARCHAR (20)   NOT NULL,
    PRIMARY KEY CLUSTERED ([facultate] ASC)
);

您正在使用以下字符串设置int参数:

comm.Parameters.Add(new SqlParameter("@cod", SqlDbType.Int) { Value = T4.Text });
您应该解析所有这些行中的值,这些行是整数,如下所示:

comm.Parameters.Add(new SqlParameter("@cod", SqlDbType.Int) { Value = int.Parse(T4.Text) });
为什么不使用

comm.Parameters.AddWithValue("@cod", T4.Text);

comm.Parameters.AddWithValue("@facultate", C1.Text);
comm.Parameters.AddWithValue("@domeniul", T1.Text);
    ... 
comm.Parameters.AddWithValue(“@d_inscriere”,DTP1.Value)

    ...
    etc

正如错误所说,字符串值无法转换为INT。您也可以使用comm.Parameters。AddWithValue@FabioCampinho:不!您应该签出并停止使用
.AddWithValue()
-这可能会导致意外的结果…谢谢@marc_s。
int.Parse()
如果无法将值解析为int@meda是的。这就是为什么我会这样说。如果OP不确定这些值是否可以解析为int,那么他应该使用int.TryParse,或者它应该抛出一个异常,OP应该捕捉该异常以警告dataNow有问题。正如你所说,我在之后做了更改,但他给出了另一个错误:输入字符串的格式不正确。。。。无法将字符串解析为int。请使用int.TryParse查看是否可以解析该值。我尝试使用int.TryParse和Convert.ToInt32。。同样的错误您应该签出并停止使用
.AddWithValue()
-这可能会导致意外的结果…因为:输入字符串的格式不正确