【发布时间】:2017-08-17 04:56:40
【问题描述】:
我有以下代码:
private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
string age = dataGridView1.Rows[e.RowIndex].Cells["dataGridViewTextBoxColumn43"].Value.ToString();
dataGridView1.Rows[e.RowIndex].Cells["dataGridViewTextBoxColumn43"].Value = (age == "1") ? "Муж" : "Жен";
}
当我运行程序时,它会给出致命消息:
在数据库字段中gender 是integer 类型。此值应添加到列名:dataGridViewTextBoxColumn43。
查询数据库:
公共数据表选择(SQLiteDatabase db) {
return db.GetDataTable("SELECT " +
"Pacients.id, " +
"unique_code," +
"status_pass, " +
"payment, " +
"profession," +
"office_address, " +
"factory_name, " +
"factory_edrpou, " +
"factory_departament," +
"name, " +
"secondname, " +
"lastname, " +
"datebirth, " +
"taxcode, " +
"gender, " +
"Pacients.created_at, " +
"file, " +
"PacientsOrder.kind_work, " +
"PacientsOrder.status " +
"FROM Pacients LEFT JOIN PacientsOrder ON PacientsOrder.pacient_id = Pacients.id LEFT JOIN Transactions ON Transactions.pacient_id = Pacients.id ORDER BY Pacients.id DESC");
}
【问题讨论】:
-
你调试代码了吗?哪一行代码给你错误?代码谈论年龄,而您的描述谈论性别,但例外是将数字转换为字符串的 FormatException,而代码没有使用任何转换方法。我在这里错过了什么。
-
看起来您正在尝试将文本值分配给绑定到数据源数字列的单元格。那是转换失败的时候。您是否为列
dataGridViewTextBoxColumn43设置了特定的数据类型? -
它有
DataGridViewTextBoxColumn类型 -
在哪里可以看到接受的值类型?