无法转换参数C#/ SQL Server

得到错误:

无法将参数值从字符串转换为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