| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 427 人关注过本帖
标题:C#一点小问题,求高手指点啊
只看楼主 加入收藏
ainiak110
Rank: 2
等 级:论坛游民
帖 子:16
专家分:20
注 册:2012-10-31
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
C#一点小问题,求高手指点啊
程序代码:
 private void Add_Click(object sender, EventArgs e)
        {
            if (cmbBarcode.Text == "")
                return;
            if (!chkCustomerID.Checked)
                nudDiscount.Value = 1;
             = string.Format("select ID,ISBN,Name,Price from Book where Barcode='{0}'",cmbBarcode.Text);
            SqlDataReader reader = null;



            try
            {
                reader = cmd.ExecuteReader();

                if (reader.Read())
                {
                    object[] obj = new object[7];
                    obj[0] = reader["ID"];
                    obj[1] = reader["ISBN"];
                    obj[2] = reader["Name"];
                    obj[3] = reader["Price"];
                    obj[4] = nudNumber.Value;
                    obj[5] = nudDiscount.Value;
                    obj[6] = ((int)obj[3]) * ((int)obj[4]) * ((int)obj[5]);
                    this.dataGridView1.Rows.Add(obj);
                }
                else
                {
                    MessageBox.Show("没有符合条件的记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
            }
            catch (Exception exp)
            {
                MessageBox.Show("数据访问错误:" + exp.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                if (reader != null && !reader.IsClosed)
                    reader.Close();
            }
        }
这段代码高手看了应该懂我的意思。。。

现在的问题就是运行之后数据库访问错误,指定转换无效!

求高手修改下代码 并告诉错误的原因。。。谢谢
搜索更多相关主题的帖子: color 
2012-11-22 11:47
mmxo
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:13
帖 子:189
专家分:1090
注 册:2012-11-7
收藏
得分:20 
这个不知道你那些对象的值是什么就不好判断,你自己下个断看一下,很快就能发现错在哪里了!

为提高中华编程水平而奋斗
2012-11-22 13:06
ainiak110
Rank: 2
等 级:论坛游民
帖 子:16
专家分:20
注 册:2012-10-31
收藏
得分:0 
回复 2楼 mmxo
程序代码:
 reader = cmd.ExecuteReader();

                if (reader.Read())
                {
                    object[] obj = new object[7];
                    obj[0] = reader["ID"];
                    obj[1] = reader["ISBN"];
                    obj[2] = reader["Name"];
                    obj[3] = reader["Price"];
                    obj[4] = nudNumber.Value;
                    obj[5] = nudDiscount.Value;
                    obj[6] = ((int)obj[3]) * ((int)obj[4]) * ((int)obj[5]);
                    this.dataGridView1.Rows.Add(obj);
这一段我可以这样用吗?

ID int
ISBN nchar
Name nvarchar
Price smallmoney
!如果不对的话我该怎么改呢?
2012-11-22 13:17
mmxo
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:13
帖 子:189
专家分:1090
注 册:2012-11-7
收藏
得分:0 
这样用:
obj[6] = (decimal)obj[3] * (decimal)obj[4] * (decimal)obj[5];

[ 本帖最后由 mmxo 于 2012-11-22 13:41 编辑 ]

为提高中华编程水平而奋斗
2012-11-22 13:31
ainiak110
Rank: 2
等 级:论坛游民
帖 子:16
专家分:20
注 册:2012-10-31
收藏
得分:0 
回复 4楼 mmxo
mmxo 斑竹,我太感谢你了!终于可以了,我从昨天下午纠结到现在。。刚才运行成功了,太激动了。。谢谢

类型转换没学好的后果啊。。。。。
2012-11-22 13:54
快速回复:C#一点小问题,求高手指点啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023702 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved