其他信息:无法将类型 'System.Int32' 的对象强制转换为类型 'System.String'



如何在提取金额时删除错误

 con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:UsersanaabenojaDocumentssample connection.accdb";
 sql = "SELECT * FROM Acc_info where  account_no = " +txtaccno.Text;     
 cmd.Connection = con;
 cmd.CommandText = sql;
        da.SelectCommand = cmd;
        da.Fill(Log_in);
        if (Log_in.Rows.Count > 0)
        {
error -->  *balance = (string  )(Log_in.Rows[0]["balance"]);*
            num1 = int.Parse("balance");
            num2 = int.Parse(txtamount.Text);

替换balance = (string )(Log_in.Rows[0]["balance"]);

带有

balance = Log_in.Rows[0]["balance"].ToString();

这将确保存在的任何值都以字符串格式返回。如果您还必须处理null值,请尝试请改用Convert.ToString()。

 con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:UsersanaabenojaDocumentssample connection.accdb";
 sql = "SELECT * FROM Acc_info where  account_no = " +txtaccno.Text;     
 cmd.Connection = con;
 cmd.CommandText = sql;
        da.SelectCommand = cmd;
        da.Fill(Log_in);
        if (Log_in.Rows.Count > 0)
        {
error -->  *balance = (string  )(Log_in.Rows[0]["balance"]);*
            num1 = int.Parse("balance");
            num2 = int.Parse(txtamount.Text);

如果稍后要解析字符串,您甚至需要转换为字符串吗??!

只需使用:

num1 = Log_in.Rows[0]["balance"]

不确定DataAdapter的作用,因为我很少使用它,但最坏的情况是,如果它还不是int,就将值强制转换为int(即,它被装箱了——如果它是不兼容的类型,显然不要强制转换为整型!):

num1 = (int)Log_in.Rows[0]["balance"]

相关内容

最新更新