无法转换参数C#/SQL Server [英] Failed to convert parameter C# / SQL Server

查看:148
本文介绍了无法转换参数C#/SQL Server的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

获取错误:

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

Failed to convert parameter value from string to a Int32

我为表单编写了该代码,最后在运行代码时出现错误.我尝试更改所有内容,但是任何交换都会给我同样的错误.

I write that code for my form and at finally when run the code and I get an error. I tried to change everything but but any exchange gives me the same error.

我的代码:

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表结构:

SQL Server table structure:

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参数:

You are setting int parameter with strings like in:

comm.Parameters.Add(new SqlParameter("@cod", SqlDbType.Int) { Value = T4.Text });

您应该在所有这些整数行中解析值,例如:

You should parse the value in all these lines that are integers with something like:

comm.Parameters.Add(new SqlParameter("@cod", SqlDbType.Int) { Value = int.Parse(T4.Text) });

这篇关于无法转换参数C#/SQL Server的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆