注册 登录
编程论坛 ASP.NET技术论坛

在VS2005中链接数据库并添加数据的问题

方杰斌 发布于 2010-12-07 21:55, 1454 次点击
也许之前别人有问过了,但现在我急用又不会,所以只好再发问一下!
 具体情况是这样的:
 
只有本站会员才能查看附件,请 登录

链接数据库后   
读取ID号  和 QQ号码   然后添加到已经建好的表中!

我写的
using System;
using System.Collections.Generic;
using
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;


namespace WindowsApplication5
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection("server=XP-201011101200\\SQLEXPRESS;uid=sa;pwd=123456;database=QQ");
            con.Open();
            if (textBox1.Text != ""&&textBox2.Text!="")
            {
                int w, x;
                w = Convert.ToInt32(textBox1.Text);
                x =Convert.ToInt32(textBox2.Text);
                string ddd = "use test go  insert into test(id,qqnum) ,values(w;x)";
                con.Close();
                MessageBox.Show("添加成功");
            }
        }
    }
}



可是添加完,查一下数据库中的表  没有新数据!郁闷很! 还有一个问题  
写完  生成解决方案的时候提示:
只有本站会员才能查看附件,请 登录



如果发现问题很严重,请大家帮忙指正! 谢谢了[ 希望能给我正确的代码  完整的   ]
14 回复
#2
gongqf2010-12-08 06:08
string ddd = "use test go  insert into test(id,qqnum) ,values(w;x)";
你只是定义了一个字符串  
没使用DDD做什么啊    应该还有一个函数执行这句话

注意  你QQ号码干什么要转成INT啊  直接字符串就行了
#3
筱晓绾2010-12-08 08:42
string ddd = "use test go  insert into test(id,qqnum) ,values(w;x)";
简单增加数据的Sql语句是这样写的吗?"USE Test GO INSERT INTO Test(id,qqnum)Values(w,x)"
语句写好后,并没有执行就直接关闭了数据库连接,自然就无法插入数据.因此在
con.Close();
MessageBox.Show("添加成功");
前面增加一个执行sql语句的函数,可以用int接收,返回值大于0,则添加成功,否则添加失败!
#4
kevintang2010-12-08 11:04
你连命令对象都没有创建!怎么插入!!!!!
#5
冰镇柠檬汁儿2010-12-08 12:36
if (textBox1.Text != "" && textBox2.Text != "")
{
    con.Open();
    int w, x;
    w = Convert.ToInt32(textBox1.Text);
    x = Convert.ToInt32(textBox2.Text);
    string ddd = "insert into test(id,qqnum) values(" + w + ", " + x + ")";
    SqlCommand cmd = new SqlCommand(ddd, con);
    cmd.ExecuteNonQuery();
    con.Close();
    MessageBox.Show("添加成功");
}

这里面有几点需要注意:
1 Convert.ToInt32(textBox1.Text)这类的语句,当你填入的不是数字时会出现异常,需要特殊处理
2 QQ号码现在已经出现11位的号码了,int值最大支持21亿多,只有10位,也容易出现异常,所以建议用string类型
#6
方杰斌2010-12-08 14:23
谢谢 大家     对了 楼上的  版主  请问   为什么 还要再  ("+w+","+x+")     那+ 号 那       ?

[ 本帖最后由 方杰斌 于 2010-12-8 14:26 编辑 ]
#7
kevintang2010-12-08 15:18
组装sql 语句啊!
楼上的  ! 你基础很差!
#8
筱晓绾2010-12-08 15:36
以下是引用kevintang在2010-12-8 15:18:06的发言:

组装sql 语句啊!
楼上的  ! 你基础很差!
都是这样走过来的......
#9
kevintang2010-12-08 15:41
筱晓绾!这个在学校就应该学过!
这种连接字符串是基础中的基础!
其实 如果 自己愿意尝试的 这个断点 !
单步跟踪一下 就知道什么意思了!
#10
筱晓绾2010-12-08 15:45
以下是引用kevintang在2010-12-8 15:41:12的发言:

筱晓绾!这个在学校就应该学过!
这种连接字符串是基础中的基础!
其实 如果 自己愿意尝试的 这个断点 !
单步跟踪一下 就知道什么意思了!
这个是学过,我不是不会.只是每个人不是一开始都会的,也许人家现在还不懂呢?如果人家懂,就不会到这里来问了.
#11
方杰斌2010-12-08 18:47
呵呵 别伤和气!  我不是学这个的!  但觉得这东西挺不错的,就尝试的学习一下!   目标是自己做一个论坛!
#12
冰镇柠檬汁儿2010-12-08 22:22
+ 用在两个字符串之间,就是起到连接两个字符串的作用
别理他们,他们经常吵架,不会伤和气的
#13
hugeannex2010-12-09 13:12
我来说两个要注意的地方(只供参考):
一、QQ与达12位,int已经不适用,应该用UInt64:
  UInt64.TryParse();来判断
二、插入数据最好用SqlParamenter
#14
quan83012010-12-09 15:51
学习了!!!!!!
1