无法将类型“object”隐式转换为“int”。存在一个显式转换(是不是缺少强制转换?)
无法将类型“object”隐式转换为“int”。存在一个显式转换(是否缺少强制转换?)
请问一下,
为什么
这句提示:
错误 1 无法将类型“object”隐式转换为“int”。存在一个显式转换(是否缺少强制转换?)
代码如下:
------解决思路----------------------
mysqlReader2.Read()要在mysqlReader2["count1"].ToString() != "0" )前,你还没读的情况下没法访问里面的东西。
------解决思路----------------------
使用mysqlReader2[0]之前,要执行mysqlReader2.Read()
DataReader是数据阅读器,它是以类似于指针的形式读取数据库里面的记录,具有效率高的特点。
使用Read()方法可以将满足查询的记录依次读取出来,类似于指针的Next()方法。
使用while循环可以读取到全部记录,读取到最后一条记录时退出循环。
返回的值为Object类型,可以进行转换以得到需要的数据。
注意
使用datareader必须及时关闭,否则会与数据库建立长连接,消耗数据库的连接数。关闭连接使用Close()方法或使用Using方法让系统帮你自动释放。
如果datareader没有进行关闭,当程序存在若干未关闭的datareader的时候,客户端会连不上数据库的。
请问一下,
为什么
if (mysqlReader2[0].ToString() != "0" )
这句提示:
错误 1 无法将类型“object”隐式转换为“int”。存在一个显式转换(是否缺少强制转换?)
代码如下:
connection = new MySql.Data.MySqlClient.MySqlConnection(MyConnectionString);
connection.Open();
MySqlCommand cmd_board = connection.CreateCommand();
MySqlCommand cmd_board2 = connection.CreateCommand();
cmd_board.CommandText = "SELECT wr_2 FROM gs_write_" + config.my_serv_table + " WHERE wr_1 != 1 AND wr_subject !='' LIMIT 0,5 ";
cmd_board2.CommandText = "SELECT count(*) as count1 FROM gs_write_" + config.my_serv_table + " WHERE wr_1 != 1 AND wr_subject !='' LIMIT 0,5 ";
MySql.Data.MySqlClient.MySqlDataReader mysqlReader1 = cmd_board.ExecuteReader();
MySql.Data.MySqlClient.MySqlDataReader mysqlReader2 = cmd_board2.ExecuteReader();
if (mysqlReader2[0].ToString() != "0" )
{
linkLabel1.Text = "";
while (mysqlReader1.Read())
{
if (mysqlReader1["wr_2"].ToString().Length > 10)
{
linkLabel1.Text += "\n" + mysqlReader1["wr_2"].ToString().Substring(0, 10) + "\n";
}
else
{
linkLabel1.Text += "\n" + mysqlReader1["wr_2"].ToString() + "\n";
}
}
}
------解决思路----------------------
mysqlReader2.Read()要在mysqlReader2["count1"].ToString() != "0" )前,你还没读的情况下没法访问里面的东西。
------解决思路----------------------
使用mysqlReader2[0]之前,要执行mysqlReader2.Read()
DataReader是数据阅读器,它是以类似于指针的形式读取数据库里面的记录,具有效率高的特点。
使用Read()方法可以将满足查询的记录依次读取出来,类似于指针的Next()方法。
使用while循环可以读取到全部记录,读取到最后一条记录时退出循环。
返回的值为Object类型,可以进行转换以得到需要的数据。
while(reader.Read()){ string name = reader["name"].ToString(); // name为查询语句中的name列}
注意
使用datareader必须及时关闭,否则会与数据库建立长连接,消耗数据库的连接数。关闭连接使用Close()方法或使用Using方法让系统帮你自动释放。
如果datareader没有进行关闭,当程序存在若干未关闭的datareader的时候,客户端会连不上数据库的。