注册 登录
编程论坛 C# 论坛

c# 中进行数据库操作出错,请问哪里有误??

讨厌数构 发布于 2014-04-23 11:03, 723 次点击
private void btnAdd_Click(object sender, EventArgs e)//有误
        {
            if (sqlCon.State == ConnectionState.Open)
                sqlCon.Close();
            sqlCon.Open();
            if (this.txtSid.Text == "")
            {
                MessageBox.Show("请输入学号");
                this.txtSid.Focus();
                return;
            }
             = "select count(*) from student where Sid='" + this.txtSid.Text + "'";
            sqlCmd.Connection = sqlCon;
            int i = Convert.ToInt32(sqlCmd.ExecuteScalar());
            if (i > 0)
            {
                MessageBox.Show("该学号已经存在,请重新输入!");
                this.txtSid.SelectionStart = 0;
                this.txtSid.SelectionLength = this.txtSid.Text.Length;
                this.txtSid.Focus();
                return;
            }//判断学号

            if (this.txtSname.Text == "")
            {
                MessageBox.Show("请输入姓名!");
                this.txtSname.Focus();
                return;

            }//判断姓名

            if (this.txtSphone.Text != "")
            {
                if (this.IsNumber(this.txtSphone.Text) == false)
                {
                    MessageBox.Show("电话号码应该输入数字!");
                    this.txtSphone.SelectionStart = 0;
                    this.txtSphone.SelectionLength = this.txtSphone.Text.Length;
                    this.txtSphone.Focus();
                    return;
                }
            }//判断电话号码

            string sfex = "";
            sqlCmd.Connection = sqlCon;
            if (this.rdbMan.Checked == true)
                sfex = "男";
            else
                sfex = "女";
            string strAdd = "insert into student(Sname,Sfex,Sid,Sphonenumber,Sbirthday)values('" + this.txtSname.Text + "','" + sfex + "','" + this.txtSid.Text + "','" + this.txtSphone.Text + "','" + this.txtSbirthday.Text + "')";
             = strAdd;//哪里错了???
            sqlCmd.ExecuteNonQuery();
            MessageBox.Show("成功!");

           /* = "insert into student(Sname,Sfex,Sid,Sphonenumber,Sbirthday)values('" + this.txtSname.Text + "','" + sfex + "','" + this.txtSid.Text + "','" + this.txtSphone.Text + "','" + this.txtSbirthday.Text + "')";
            sqlCmd.ExecuteNonQuery();
            MessageBox.Show("学生记录添加成功!");
            * */
            /*
             *   = "insert into stu values('" + this.txtID.Text + "','" + this.txtName.Text + "','" + stuSex + "','" + dtpBirth.Text + "','" + this.txtPhone.Text + "')";
                sqlCmd.ExecuteNonQuery();
            //   MessageBox.Show("学生记录添加成功!");
             * */
            this.clear();
            this.fillGrid();
        }

        public bool IsNumber(string str){
            try{
                long var1 = Convert.ToInt64(str);
                return true;
            }
            catch{
            return false;
            }
        }//判断是否是数字

        public void fillGrid(){
            this.listView1.Items.Clear();
            if(sqlCon.State==ConnectionState.Open)
                sqlCon.Close();
            sqlCon.Open();

            sqlCmd.Connection=sqlCon;
             * from student";
            SqlDataReader sdr=sqlCmd.ExecuteReader();
            while(sdr.Read())
            {
                ListViewItem lv=new ListViewItem(sdr[3].ToString());
                lv.SubItems.Add(sdr[0].ToString());
                lv.SubItems.Add(sdr[2].ToString());
                lv.SubItems.Add(sdr[4].ToString());
                lv.SubItems.Add(sdr[5].ToString());
                listView1.Items.Add(lv);
                //添加一行

            }
        }
        //添加


程序运行时说
   string strAdd = "insert into student(Sname,Sfex,Sid,Sphonenumber,Sbirthday)values('" + this.txtSname.Text + "','" + sfex + "','" + this.txtSid.Text + "','" + this.txtSphone.Text + "','" + this.txtSbirthday.Text + "')";
             = strAdd;//哪里错了???
            sqlCmd.ExecuteNonQuery();
            MessageBox.Show("成功!");
有错,可是不知道哪里错了,可以帮忙解答一下吗??

数据库如下:
create database a;
create table student
(
Sname  varchar(10),
Spwd  varchar(20),
Sfex  varchar(4),
Sid varchar(20),
Sphonenumber varchar(15),
Sbirthday varchar(20)

)


select  * from  student
insert into student values('huangli','123','女','1225112009','18850571140','1994-11-02')
drop table student
9 回复
#2
xydddaxia2014-04-25 16:26
sql语句里面 values 前面的括号是中文的
#3
步向巅峰2014-04-27 14:23
回复 2 楼 xydddaxia
咋看出来括号是中文的,我只知道中文括号是2byte,而英文括号是1byte,不过只看代码我看不出来,求教
#4
xydddaxia2014-04-27 15:47
回复 3 楼 步向巅峰
只有本站会员才能查看附件,请 登录

在查询分析器里面,语句里面有中文会有这种删除线,除非用单引号引起来,
我的是sql2008,不晓得低版本有没有这个提示

[ 本帖最后由 xydddaxia 于 2014-4-28 09:57 编辑 ]
#5
讨厌数构2014-04-30 10:34
回复 3 楼 步向巅峰
把C#中的sql语句直接拷贝到SQLServer里面就能看出来了
#6
讨厌数构2014-04-30 10:42
请问怎么结贴呀??各位??
#7
Souly22014-04-30 14:37
在你发的贴子上的右上角 ,看到结贴 两个字,就能结贴 啊
#8
讨厌数构2014-04-30 15:57
只有本站会员才能查看附件,请 登录

没有啊,亲
#9
Souly22014-04-30 16:42
回复 8 楼 讨厌数构
不会是因为没有问题点数 所以没有结贴?   那我也不知道了诶
#10
讨厌数构2014-04-30 17:13
什么是问题点数呀??
1