2014-02-04 4 views
-3

Получение ошибки при обновлении данныхОшибка: SqlException не был обработан usecode?

Error converting data type nvarchar to int. 

мой код

public bool UpdateData(MemberInfo memberinfo) 
     { 
      SqlCommand cmd = DataConnection.GetConnection().CreateCommand(); 
      cmd.CommandText = "prcUpdateMemberInfo"; 
      cmd.CommandType = CommandType.StoredProcedure; 
      cmd.Parameters.Add(new SqlParameter("@MemberFirstName", memberinfo.MemberFirstName)); 
      cmd.Parameters.Add(new SqlParameter("@MemberMiddleName", memberinfo.MemberMiddleName)); 
      cmd.Parameters.Add(new SqlParameter("@MemberLastName", memberinfo.MemberLastName)); 
      cmd.Parameters.Add(new SqlParameter("@FatherName", memberinfo.FatherName)); 
      cmd.Parameters.Add(new SqlParameter("@MotherName", memberinfo.MotherName)); 
      cmd.Parameters.Add(new SqlParameter("@FamilyHeadName", memberinfo.FamilyHeadName)); 
      cmd.Parameters.Add(new SqlParameter("@DOB", memberinfo.DOB)); 
      cmd.Parameters.Add(new SqlParameter("@EducationLevelID", memberinfo.EducationLevelID)); 
      cmd.Parameters.Add(new SqlParameter("@EducationFieldID", memberinfo.EducationFieldID)); 
      cmd.Parameters.Add(new SqlParameter("@BloodGroupID", memberinfo.BloodGroupID)); 
      cmd.Parameters.Add(new SqlParameter("@OccupationTypeID", memberinfo.OccupationTypeID)); 
      cmd.Parameters.Add(new SqlParameter("@Gender", memberinfo.Gender)); 
      cmd.Parameters.Add(new SqlParameter("@GotraID", memberinfo.GotraID)); 
      cmd.Parameters.Add(new SqlParameter("@SectID", memberinfo.SectID)); 
      cmd.Parameters.Add(new SqlParameter("@MaritalStatus", memberinfo.MarritalStatus)); 
      cmd.Parameters.Add(new SqlParameter("@HouseNumber", memberinfo.HouseNumber)); 
      cmd.Parameters.Add(new SqlParameter("@StreetName", memberinfo.StreetName)); 
      cmd.Parameters.Add(new SqlParameter("@Area", memberinfo.Area)); 
      cmd.Parameters.Add(new SqlParameter("@LandMark", memberinfo.LandMark)); 
      cmd.Parameters.Add(new SqlParameter("@StateID", memberinfo.StateID)); 
      cmd.Parameters.Add(new SqlParameter("@CountryID", memberinfo.CountryID)); 
      cmd.Parameters.Add(new SqlParameter("@CityID", memberinfo.CityID)); 
      cmd.Parameters.Add(new SqlParameter("@EmailAddress", memberinfo.EmailAddress)); 
      cmd.Parameters.Add(new SqlParameter("@PhoneNumber", memberinfo.PhoneNumber)); 
      cmd.Parameters.Add(new SqlParameter("@UserId", memberinfo.UserId));   
      cmd.Parameters.Add(new SqlParameter("@IsSubmit", memberinfo.IsSubmit)); 
      bool ans = cmd.ExecuteNonQuery() > 0; 
      cmd.Dispose(); 
      DataConnection.CloseConnection(); 
      return ans; 

и процедура

create proc [dbo].[prcUpdateMemberInfo] 
(
@UserId uniqueidentifier, 
@MemberFirstName varchar(20), 
@MemberMiddleName varchar(20), 
@MemberLastName varchar(20), 
@FamilyHeadName varchar(50), 
@FatherName varchar(50), 
@MotherName varchar(50), 
@DOB datetime, 
@GotraID int, 
@SectID int, 
@BloodGroupID int, 
@EducationLevelID int, 
@EducationFieldID int, 
@HouseNumber varchar(20), 
@StreetName varchar(50), 
@Area varchar(50), 
@LandMark varchar(50), 
@StateID int, 
@CountryID int, 
@CityID int, 
@PhoneNumber int, 
@EmailAddress varchar(50), 
@MaritalStatus varchar(20), 
@OccupationTypeID int, 
@Gender varchar(10), 
@IsSubmit bit 
) 
as 
update MemberInfo 
set 
MemberFirstName = @MemberFirstName, 
[email protected] , 
MemberLastName [email protected], 
FamilyHeadName [email protected], 
FatherName [email protected], 
MotherName [email protected], 
DOB [email protected], 
GotraID [email protected], 
SectID [email protected], 
BloodGroupID [email protected], 
EducationLevelID [email protected], 
EducationFieldID [email protected], 
HouseNumber [email protected], 
StreetName [email protected], 
Area =[email protected], 
LandMark [email protected], 
StateID [email protected], 
[email protected], 
CityID [email protected], 
PhoneNumber [email protected], 
EmailAddress [email protected], 
MaritalStatus [email protected], 
[email protected], 
[email protected], 
[email protected] 
where UserId [email protected] 

класс является

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

namespace JaiJinendera.Common 
{ 
    public class MemberInfo 
    { 
     string memberFirstName, memberMiddleName, memberLastName, fatherName, motherName, familyHeadName, gender, marritalStatus,phoneNumber, houseNumber, landMark, area, streetName, emailAddress; 

     public string EmailAddress 
     { 
      get { return emailAddress; } 
      set { emailAddress = value; } 
     } 

     public string StreetName 
     { 
      get { return streetName; } 
      set { streetName = value; } 
     } 

     public string Area 
     { 
      get { return area; } 
      set { area = value; } 
     } 

     public string LandMark 
     { 
      get { return landMark; } 
      set { landMark = value; } 
     } 

     public string HouseNumber 
     { 
      get { return houseNumber; } 
      set { houseNumber = value; } 
     } 

     public string MarritalStatus 
     { 
      get { return marritalStatus; } 
      set { marritalStatus = value; } 
     } 

     public string Gender 
     { 
      get { return gender; } 
      set { gender = value; } 
     } 

     public string FamilyHeadName 
     { 
      get { return familyHeadName; } 
      set { familyHeadName = value; } 
     } 

     public string MotherName 
     { 
      get { return motherName; } 
      set { motherName = value; } 
     } 

     public string FatherName 
     { 
      get { return fatherName; } 
      set { fatherName = value; } 
     } 

     public string MemberLastName 
     { 
      get { return memberLastName; } 
      set { memberLastName = value; } 
     } 

     public string MemberMiddleName 
     { 
      get { return memberMiddleName; } 
      set { memberMiddleName = value; } 
     } 

     public string MemberFirstName 
     { 
      get { return memberFirstName; } 
      set { memberFirstName = value; } 
     } 

     int countryID, stateID, cityID, sectID, gotraID, educationLevelID, educationFieldID, bloodGroupID, occupationTypeID; 

     public int OccupationTypeID 
     { 
      get { return occupationTypeID; } 
      set { occupationTypeID = value; } 
     } 


     public string PhoneNumber 
     { 
      get { return phoneNumber; } 
      set { phoneNumber = value; } 
     } 

     public int BloodGroupID 
     { 
      get { return bloodGroupID; } 
      set { bloodGroupID = value; } 
     } 

     public int EducationFieldID 
     { 
      get { return educationFieldID; } 
      set { educationFieldID = value; } 
     } 

     public int EducationLevelID 
     { 
      get { return educationLevelID; } 
      set { educationLevelID = value; } 
     } 

     public int GotraID 
     { 
      get { return gotraID; } 
      set { gotraID = value; } 
     } 

     public int SectID 
     { 
      get { return sectID; } 
      set { sectID = value; } 
     } 

     public int CityID 
     { 
      get { return cityID; } 
      set { cityID = value; } 
     } 

     public int StateID 
     { 
      get { return stateID; } 
      set { stateID = value; } 
     } 

     public int CountryID 
     { 
      get { return countryID; } 
      set { countryID = value; } 
     } 
     DateTime dOB, insertionDate; 

     public DateTime InsertionDate 
     { 
      get { return insertionDate; } 
      set { insertionDate = value; } 
     } 

     public DateTime DOB 
     { 
      get { return dOB; } 
      set { dOB = value; } 
     } 
     Guid userId; 


public Guid UserId 
{ 
    get { return userId; } 
    set { userId = value; } 
} 
bool isSubmit; 

public bool IsSubmit 
{ 
    get { return isSubmit; } 
    set { isSubmit = value; } 
} 
    } 
} 
+0

Чтобы получить ответ, вы должны показать определение класса MemberInfo. Как говорится в сообщении, одно из ваших значений параметров передается как строка, но ожидается целое число (два цента на PhoneNumber) – Steve

+0

Сообщение об ошибке довольно понятно, вы уже пытались решить эту проблему самостоятельно? – DGibbs

+0

yaaaaa из последних нескольких часов я пытаюсь только – VJain

ответ

1

В I сказали в моем комментарии, в определении класса PhoneNumber является строкой, но хранимая процедура ожидает целое число. Это твоя проблема.

Я бы сменил хранимую процедуру и базовую информацию, относящуюся к VARCHAR (30), или размер вашего, потому что возможно иметь номера телефонов с алфавитными символами. В противном случае, если вы абсолютно уверены в обратном, измените объявление класса на целое.

+0

ohhh какая глупая ошибка, спасибо u – VJain

0

Ваша процедура имеет @PhoneNumber int, которая, вероятно, должна быть @PhoneNumber varchar(50) или какой-либо другой длиной varchar.

Смежные вопросы