更新记录代码错误

时间:2018-05-07 18:05:57

标签: sql-server

我收到错误:

  

未处理的类型' System.InvalidCastException'发生在System.Data.dll

中      

其他信息:无法将参数值从ComboBox转换为String。

我错过了什么?

int n,m,i=0,tempNum,lines;
int NumberOfIds=0;
ifstream read("input2.txt");
while(read>>n>>m){
    if (i==0){
        tempNum=n;
    }
    if (tempNum != n){
        NumberOfIds++;
    }
    tempNum = n;
    i++;
}
lines=i-1;

//printf("%d", j);
int** idElements = new int*[NumberOfIds];
int* ids = new int[NumberOfIds];
int* numberOfIdElements = new int[NumberOfIds];

// Rewinds file
read.clear();
read.seekg(0, ios::beg);

int counter = 0;
NumberOfIds=0;
while(read>>n>>m){

    if (tempNum != n){
        numberOfIdElements[NumberOfIds] = counter;
        NumberOfIds++;
        counter = 0;
    }
    tempNum = n;
    counter++;
    i++;
}

for(int k = 0; k < NumberOfIds; ++k)
    idElements[k] = new int[numberOfIdElements[k]];

2 个答案:

答案 0 :(得分:0)

我猜你的代码可能会尝试将参数值设置为对象,而你想要的是将它们设置为这些对象中的文本值。

例如,在第一个中,这个:

command.Parameters.Add("@Donor_ID", SqlDbType.NChar).Value = txtDonor_ID

应该是更像这样的东西:

command.Parameters.Add("@Donor_ID", SqlDbType.NChar).Value = txtDonor_ID.Text

等等。

答案 1 :(得分:0)

我猜cbSex.SelectedItem是ComboBox.SelectedItem类型对象。要从ComboBox.SelectedItem获取字符串值,您必须使用SelectedItem.Text或SelectedValue。如果txtDonor_ID是TextBox类型变量,那么你应该使用txtDonor_ID.Text。对所有其他控件都这样做。

txtDonor_ID.Text
cbSex.SelectedItem.Text or  cbSex.SelectedValue