2010-10-01 5 views
1

ce code me donne l'erreur:erreur dans la conversion type de données nvarchar à bigint

error in converting datatype nvarchar to bigint 

ceci est mes valeurs de table:

 
    @customer_first_name nvarchar(50), 
@customer_last_name nvarchar(50), 
@customer_address nvarchar(max), 
@gender nchar(10), 
@date_of_birth datetime, 
@customer_email_id varchar(50), 
@customer_occuption varchar(50), 
@customer_phone_number Bigint, 
@nominee_name nchar(50), 
@customer_id nvarchar(50), 
@account_type nvarchar(50), 
@account_number nvarchar(50), 
@transfer_access_code nvarchar(50), 
@account_balance Bigint, 
@pin_code BigInt, 
@nationality nvarchar(50), 
@password nvarchar(50) 
lblAmount.Text = HFamount .Value ; 
int balamount = Convert.ToInt32(lblAmount.Text); 
int Cpincode = Convert.ToInt32(txtpincode.Text); 

long phone = Convert.ToInt64(txtphone.Text); 
string cust_id = CUSTOMER_ID_GENERATOR(); 
string sqlquery = "INSERT INTO customer_details values(@customer_first_name,@customer_last_name,@customer_address,@gender,@date_of_birth,@customer_email_id,@customer_occuption,@customer_phone_number,@nominee_name,@customer_id,@account_type,@account_number,@transfer_access_code,@account_balance,@pin_code,@nationality,@password)"; 
string strconstring = ConfigurationManager.ConnectionStrings["ONLINE_BANKING2_ConnectionString"].ConnectionString; 
SqlConnection mycon = new SqlConnection(strconstring); 
mycon.Open(); 
SqlCommand cmdRegister= new SqlCommand(sqlquery,mycon); 
cmdRegister.Parameters.Add(new SqlParameter("@customer_first_name",txtcustname.Text.ToString())); 
cmdRegister.Parameters.Add(new SqlParameter("@customer_last_name",txtcustlastname.Text.ToString())); 
cmdRegister.Parameters.Add(new SqlParameter("@customer_address",txtAddress.Text.ToString())); 
cmdRegister.Parameters.Add(new SqlParameter("@gender", rbtngender.SelectedItem.Value.ToString())); 
cmdRegister.Parameters.Add(new SqlParameter("@date_of_birth", txtDOB.Text)); 
cmdRegister.Parameters.Add(new SqlParameter("@customer_email_id", txtemail.Text.ToString())); 
cmdRegister.Parameters.Add(new SqlParameter("@customer_occuption", txtcustoccupation.Text.ToString())); 
cmdRegister.Parameters.Add(new SqlParameter("@customer_phone_number", phone)); 
cmdRegister.Parameters.Add(new SqlParameter("@nominee_name", txtnominee.Text.ToString())); 
cmdRegister.Parameters.Add(new SqlParameter("@customer_id", cust_id)); 
cmdRegister.Parameters.Add(new SqlParameter("@account_type", accType.SelectedItem.Value.ToString())); 
cmdRegister.Parameters.Add(new SqlParameter("@account_number", ACCOUNT_NUMBER_GENERATOR())); 
cmdRegister.Parameters.Add(new SqlParameter("@transfer_access_code",Transfer_code())); 
cmdRegister.Parameters.Add(new SqlParameter("@account_balance", balamount)); 
cmdRegister.Parameters.Add(new SqlParameter("@pin_code", Cpincode)); 
cmdRegister.Parameters.Add(new SqlParameter("@nationality", DropCountry.SelectedItem.Value.ToString())); 
cmdRegister.Parameters.Add(new SqlParameter("@password",txtpasswd2.Text.ToString())); 
cmdRegister.ExecuteNonQuery(); 
mycon.Close(); 

s'il vous plaît aidez-moi

seulement des vues sur répondre

+0

Quelles sont les données que vous essayez d'insérer? – dan04

+1

probablement un caractère non numérique dans vos données. vous auriez besoin de filtrer ces valeurs avant de tenter la conversion. – bernie

+0

en fait je ne suis pas en train d'insérer des données dans une chaîne qui sera enregistrée dans le type de données nvarchar et celles qui doivent être insérées dans le nombre sont converties en int et long puis ajoutées dans la base de données erreur j'ai également essayé sqlDbtypes puis aussi me donner la même erreur –

Répondre

1

Une chose est d'essayer d'utiliser int comme type de données pour la variable balamount au lieu de long. Ensuite, veuillez imprimer la valeur de la variable balamount et la mettre à jour dans votre question.

Le problème pourrait ne pas être avec un caractère non numérique dans balamount, car dans ce cas, il aurait échoué à la ligne Comvert.toInt32() lui-même.

EDIT: Depuis que vous utilisez. « Syntaxe Insert into table values(...)" Êtes-vous sûr de l'ordre de colonne est correcte Pour éviter toute confusion, pouvez-vous changer votre syntaxe insert. » Insert in table (col1, col2, ... coln) values (@col1, @col2,... @coln)". Cela vous donnera une meilleure idée de quelle colonne vous insérez les valeurs.

+0

oui je l'ai fait mais aussi la même erreur se produit –

+0

@ user404305 - S'il vous plaît voir ma réponse éditée –

+0

hey je l'ai eu thankkkzz –

Questions connexes