【发布时间】:2015-12-22 10:23:55
【问题描述】:
我正在尝试使用此方法从数据库访问中获取信息
public List<gerant> getinfogerant()
{
List<gerant> gerer = new List<gerant>();
string sql_gerant = "select CIN,NOM,PRENOM,ADRESS_PERSONNEL,NUM_TEL,MAIL,MOBILE,CP_GERANT,VILLE_GERANT,DATE_CIN from GERANT";
connexion connect = new connexion();
OleDbConnection connection = connect.getconnexion();
connection.Open();
OleDbCommand cmd = new OleDbCommand(sql_gerant, connection);
OleDbDataReader reader = cmd.ExecuteReader();
while(reader.Read())
{
gerer.Add(new gerant(reader.GetInt64(0),
reader.GetString(1),
reader.GetString(2),
reader.GetString(3),
reader.GetDouble(4),
reader.GetString(5),
reader.GetDouble(6),
reader.GetInt32(7),
reader.GetString(8),
reader.GetDateTime(9))
);
}
connection.Close();
return gerer;
}
在我的数据库访问中,我将字段 cin 定义为长整数并格式化为“00000000”
但我在reader.GetInt64(0) 中遇到错误:
指定的演员表无效
我该如何解决?
【问题讨论】:
-
格式化的“0000000”是什么意思?如果这是语句的结果,则 CIN 是一个字符串。
-
CIN字段可以是null吗? -
您确定您在
reader.GetInt64(0)中遇到异常,而不是在整个gerant构造函数中吗? -
@nabuchodonossor : 这意味着 cin 必须插入 8 位
-
@MikhailNeofitov:我用 GetString 更改了 GetInt64(0) 并且它有效?