Reader 只有 select 来自 MySQL 数据库的空字段 - 错误消息:值不能为 NULL 参数:项目
Reader only select empty Fields from MySQL-Database - Error Message: The Value cannot be NULL Paramter: Item
如果我尝试从 MySQL 数据库 select 数据库,我会收到一条错误消息:值不能为 NULL。参数:item(德语:Der Wert darf nicht NULL sein。参数:item)所以这意味着 Reader 只有 select 空字段 - 他 "selects NULL" - 但字段在我的 SQL-数据库。
private: void Fillcombo(void) {
String^ constring = L"datasource=localhost;port=3306;username=root;password=ichstinkenachmaggie";
MySqlConnection^ conDataBase = gcnew MySqlConnection(constring);
MySqlCommand^ cmdDataBase = gcnew MySqlCommand("select rank from database.ranks;", conDataBase);
MySqlDataReader^ myReader;
try {
conDataBase->Open();
myReader = cmdDataBase->ExecuteReader();
while (myReader->Read()) {
String^ vRank;
myReader->GetString("rank");
rank_combo->Items->Add(vRank);
}
}
catch (Exception^ex) {
MessageBox::Show(ex->Message);
}
}
如果替换行:
rank_combo->Items->Add(vRank);
有了这个:
rank_combo->Items->Add(vRank + "*****");
然后我没有得到错误但是在组合框中只有 4 行 5 ***** :(
您从未将变量 vRank
初始化为任何值,当然它仍然是 null。你是不是忘了把GetString
的结果赋值给vRank
?
while (myReader->Read()) {
String^ vRank;
vRank = myReader->GetString("rank");
^^^^^^^^
如果我尝试从 MySQL 数据库 select 数据库,我会收到一条错误消息:值不能为 NULL。参数:item(德语:Der Wert darf nicht NULL sein。参数:item)所以这意味着 Reader 只有 select 空字段 - 他 "selects NULL" - 但字段在我的 SQL-数据库。
private: void Fillcombo(void) {
String^ constring = L"datasource=localhost;port=3306;username=root;password=ichstinkenachmaggie";
MySqlConnection^ conDataBase = gcnew MySqlConnection(constring);
MySqlCommand^ cmdDataBase = gcnew MySqlCommand("select rank from database.ranks;", conDataBase);
MySqlDataReader^ myReader;
try {
conDataBase->Open();
myReader = cmdDataBase->ExecuteReader();
while (myReader->Read()) {
String^ vRank;
myReader->GetString("rank");
rank_combo->Items->Add(vRank);
}
}
catch (Exception^ex) {
MessageBox::Show(ex->Message);
}
}
如果替换行:
rank_combo->Items->Add(vRank);
有了这个:
rank_combo->Items->Add(vRank + "*****");
然后我没有得到错误但是在组合框中只有 4 行 5 ***** :(
您从未将变量 vRank
初始化为任何值,当然它仍然是 null。你是不是忘了把GetString
的结果赋值给vRank
?
while (myReader->Read()) {
String^ vRank;
vRank = myReader->GetString("rank");
^^^^^^^^