2 j1071287319 j1071287319 于 2016.05.07 00:57 提问

关于winform控件添加数据库数据的,一直提示无法将char转换成money,能不能帮忙看看

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace 游戏点卡管理
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

    SqlConnection conn = new SqlConnection();
    SqlCommand cmd = new SqlCommand();
    SqlDataAdapter DataAdapter = new SqlDataAdapter();
    DataSet ds = new DataSet();


    public void ff ()
    {
        try
        {
            dataGridView1.Columns.Clear();
            conn.Open();

            string str = string.Format("select cardid as 卡号,gamename as 游戏名称,company as 发行公司,lastday as 最后有效期,price as 售价 from cardinfo");
            cmd = new SqlCommand(str, conn);
            DataAdapter = new SqlDataAdapter();
            DataAdapter.SelectCommand = cmd;
            ds = new DataSet();

            DataAdapter.Fill(ds, "点卡");
            dataGridView1.DataSource = ds.Tables["点卡"];

        }
        catch (Exception ex)
        {

            MessageBox.Show(ex.ToString());
        }

        finally
        {
            conn.Close();
        }
    }
    private void Form1_Load(object sender, EventArgs e)
    {
        conn = new SqlConnection("server=.;pwd=sa;uid=sa;database=GameCardDB;");
        ff();
    }

    private void button3_Click(object sender, EventArgs e)
    {
        string id = this.textBox1.Text.Trim();
        string gs = this.textBox2.Text.Trim();
        int sj = int.Parse(this.textBox3.Text.Trim());
        string mc = this.textBox4.Text.Trim();
        string time = this.dateTimePicker1.Text.Trim();
        conn.Open();
        string str = String.Format("insert into cardinfo values('{0}','{1}',{2},'{3}')", mc, gs, time, sj);
        cmd = new SqlCommand(str, conn);

        try
        {

            int numSQLCount = cmd.ExecuteNonQuery();
            if (numSQLCount > 0)
            {
                MessageBox.Show("添加成功!");
            }
            else
            {
                MessageBox.Show("添加失败");
            }
        }
        catch (Exception ex)
        {

            MessageBox.Show(ex.ToString());
        }
        finally
        {
            conn.Close();

        }
        ff();

    }

    private void button2_Click(object sender, EventArgs e)
    {

    }

    private void button1_Click(object sender, EventArgs e)
    {

    }
}

}

4个回答

caozhy
caozhy   Ds   Rxr 2016.05.07 05:56

http://blog.csdn.net/superdont/article/details/1695466

你这里的问题是,事件日期需要加上引号,相反,整数不需要。

j1071287319
j1071287319   2016.05.07 13:49

有人吗
,帮忙看看啦

j1071287319
j1071287319   2016.05.07 00:57

create database GameCardDB

on primary
(
name='GameCardDB_data',
filename='d:\GameCardDB_data.mdf',
size=10mb,
maxsize=20mb,
filegrowth=10%
)

log on
(
name='GameCardDB_log',
filename='d:\GameCardDB_log.ldf',
size=10mb,
maxsize=20mb,
filegrowth=10%
)
go

use GameCardDB
go

create table cardinfo
(
cardid int primary key identity(1,1),--卡号
gamename varchar(50) not null,--游戏名称
company varchar(50) not null,--发行公司
lastday datetime not null,--最后有效期
price money not null,--售价
)
go

insert into cardinfo(gamename,company,lastday,price) values('梦想世界','忘了',2016-1-4,50)
insert into cardinfo(gamename,company,lastday,price) values('英雄联盟','拳头',2016-5-7,100)
insert into cardinfo(gamename,company,lastday,price) values('魔兽世界','暴雪',2016-2-3,150)

这是数据库文件

qq_20246395
qq_20246395   2016.05.07 01:28

数据库是money类型,是数值,char是字符。。。转成数字放进去就行了,应该可以是int。float。double。decimal

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
将sql中的money转化为c#中的数据类型
在购买物品时,需要对客户账户上的余额与物品的实际价格进行比较,因此需要把sql中的money读取出来,并进行转化。 找了好久。结果如下 string st1 = ConfigurationManager.ConnectionStrings["yikawangluoConnectionString"].ConnectionString;        SqlConnection Conn1 
C# Winform 出现异常:无法将顶级控件添加到控件,解决方案如下:
Form1Test frm = new Form1Test(); frm.TopLevel = false; //重要的一个步骤 frm.Parent = splitContainerPanel.Panel2; frm.Show();
C# 关于获取数据库中money类型的数据
今天写东西时遇到了个问题,就是当获取数据库中的数据时出现了一个错误,如图 然后一个个数据测发现问题出在了一个类型为money的数据上,就是无法使用强制类型转换将数据库中money类型的数据转成string类型的,上网查了一下,找到了些解决的办法: 一、可以先创建一个Decimal的变量,然后用这变量来接收money类型的数据,具体代码如下: Label[] Label1 = new
C#写winform程序,提示插入数据库成功却没有数据
今天在用C#写一个winform程序时,要向数据库Sql server2005 中插入数据, 程序提示成功,但打开数据库却没有值,再次执行时,提示主键重复,可是 数据库中并没有数据啊 原来的代码为 string sql = @"Data Source=.;AttachDbFilename=|DataDirectory|\Database1.mdf;Integra
在Winform中向DataGridView控件添加数据的三种方式
原文链接:http://blog.163.com/qqabc20082006@126/blog/static/229285252009728115659418/ 在Winform中向DataGridView控件添加数据很常用到,现总结3种填充DataGridView方法: 1.利用SqlDataAdapter对象向DataGridView中添加数据 关键代码:(可以将该代码放到窗
在sql语句中怎样把char类型转换成int类型?
首先char类型的必须是数字 convert(int,[char类型的字段名])
关于在c#中创建用户控件后,winform应用程序在调用中无法通过点击用户控件的子控件为其自动添加事件代码的问题
由于开发中业务信息的不确定性,今天制作了个usercontrol组件,该用户控件中添加了若干个子控件(如button、textbox、label),但是在winform应用程序中调用时,发现无法对其子控件(如button)进行单击自动生成button click事件代码的问题,通过google搜索了下,大致找到了解决方法,现在记录下来,仅作为开发笔记,如浏览本帖的人员有其他更好的方法,或者对其原理
如何将顶级控件添加到控件中(c# winform)
Form f = new Form(); f.Width = 200;f.Height = 300;f.TopLevel = false;//这是最关键的f.Visible = true;panel1.Controls.Add(f);
关于WinForm自定义控件添加的问题
最近在做项目的过程中使用到了导师用VB写的关于图像的类库,即自定义控件,但是在使用过程中总是会遇到无法查看设计器的问题,如图所示。 在点击“忽略并继续”后,原来设计的界面上所有控件都消失不见,也就是说再次打开设计器不能看到以前的界面,只能将设计器头文件下所有关于该自定义控件的内容都全部注释才可以,生成时又要重新手动添加,十分不便,后来经过师兄帮助,了解到是由于自定义控件经过这样手动添加的
C# WinForm 控件TreeView 最简单的连接数据库实例函数
C# WinForm 控件TreeView 最简单的连接数据库实例函数 入口: Fun_Tree(TreeView TREE, DataTable DT)//DataTable格式(编号,目录名,上级目录编号) 里面用的DataTable是内存建的 dt.Columns.Add("编号"); dt.Columns.Add("目录名"); dt.Columns.Add("上级目录编号"); dt.Rows.Add("1", "目录一", "0"); dt.Rows.Add("2", "目录二", "1"); dt.Rows.Add("3", "目录三", "0"); dt.Rows.Add("4", "目录四", "2");