C#向数据库表中插入信息。。求不吐槽命名规范
 if (textBox5.Text.Trim() == string.Empty || textBox4.Text.Trim() == string.Empty)
            {
                MessageBox.Show("请输入课程号和课程名!");
            }
            else {
                string consqlserver = "server = .;Initial Catalog=Students;integrated security=true";
                SqlConnection conn = new SqlConnection(consqlserver);
                string sql = "insert into 课程(课程号,课程名) values('" + textBox5.Text.Trim() + "','" + textBox4.Text.Trim() + "')";
                conn.Open();
                string sql1 = "select * from 课程 where 课程名 ='" + textBox4.Text + "' or 课程号 ='" + textBox5.Text + "'";
                string sql2 = "update 课程 set " +
                    " 课程号 = '" + textBox5.Text + "'," +
                    " 课程名 = '" + textBox4.Text + "', where 课程名 = '" + textBox4.Text + "' or 课程号 = '" + textBox5.Text + "'";
                SqlCommand mysqlcommand = conn.CreateCommand();
                mysqlcommand.CommandText = sql;
                SqlDataReader myread = mysqlcommand.ExecuteReader();

                if (myread.HasRows)
                {
                    DialogResult result = MessageBox.Show("已存在课程,是否在原有信息上面更新信息?","Attention!",MessageBoxButtons.OKCancel, MessageBoxIcon.Information,MessageBoxDefaultButton.Button3);
                    switch (result)
                    {
                        case DialogResult.OK:
                            conn.Close();
                            conn.Open();
                            mysqlcommand.CommandText = sql2;
                            mysqlcommand.ExecuteNonQuery();

                            conn.Close();

                            MessageBox.Show("已完成课程的更新!");
                            break;
                        case DialogResult.Cancel:
                            MessageBox.Show("未做任何修改!");
                            break;
                    }
                }
                else
                {
                    conn.Close();
                    conn.Open();
                    mysqlcommand.CommandText = sql;
                    mysqlcommand.ExecuteNonQuery();

                    conn.Close();
                    MessageBox.Show("添加该新课程成功!");
                }
            }
            this.Hide();
            Frmindex frmindex = new Frmindex();
            frmindex.ShowDialog();
        }

图片说明

8个回答

语法错误?你把sql打印出来,看看,不行放到查询器中看看哪里有错

是不是全是中文逗号啊(,)英文逗号( , )

这已经是不知道第几次看到这样的问题了,首先,你最好下载一个windows的数据库管理软件(NavicatforMySQL这里只是举例子),然后你就用这个软件
连接自己的数据库,然后新建一个查询,然后,在你的程序里面设个断点,获取到你程序生成的sql语句,复制到数据库管理软件的查询界面,解释,然后运行,
看看出错没有。

你把SQL语句打印出来放到查询分析器里执行,就知道哪里有问题

sql 语句 不对。。
调试下,把语句粘贴出来

string sql2 = "update 课程 set " +
" 课程号 = '" + textBox5.Text + "'," +
" 课程名 = '" + textBox4.Text + "', where 课程名 = '" + textBox4.Text + "' or 课程号 = '" + textBox5.Text + "'";

                                    ---------------------

                                    set 后面 出错了

逗号达成中文状态的了,改英文状态的
insert into 课程(课程号,课程名)
===>
insert into 课程(课程号,课程名)

而且你是insert语句,应该用ExecuteNonQuery,而不是executereader

你要判断课程是否存在应该是sql1,不是sql
mysqlcommand.CommandText = sql;

===>

mysqlcommand.CommandText = sql1;

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问