我做了一个form页面。上面有一个combobox。当选择1的时候数据插入没问题。选择2的时候就数据库异常了。

解决方案 »

  1.   


    就是一页面上的下拉框。  选择1的时候可以插入数据。选择2的时候就不行。可把这个form页面重载。 选择2就能插入数据库了。  是不是数据库连接 open或者close的问题?
      

  2.   

    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 MIS
    {
        public partial class Ruku : Form 
        {
            public Ruku()
            {
                InitializeComponent();
                
            }
            string hw_danhao;    //货物单号
            string hw_name;      //货物名称
            int hw_shuliang;     //货物数量
            string hw_guige;     //货物规格
            string hw_bianma;    //货物编码
            string hw_rukuriqi;  //货物入库日期
            string hw_weizhi;    //货物位置
            string hw_worker;     //货物 入库员工    把货物送来的那种员工
            string hw_beizu;     //货物备注信息
            string hw_admin;     //此次入库登记的管理员        string sqlconnet;
            public SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings[1].ConnectionString.ToString());
                  //确定提交
            private void BT_ok_Click(object sender, EventArgs e)
            {
                
                hw_admin = Denglu.status.Trim();
                hw_danhao = "R" + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + hw_admin.ToUpper();
                hw_beizu = TB_beizu.Text.Trim();
                
                //将此次入库登记的记录添加到入库记录表
                if ((TB_name.Text.Trim() == "") || (TB_shuliang.Text.Trim() == "") || (TB_bianma.Text.Trim() == "") || (CBOX_huojia.Text.Trim() == "") || (CBOX_ceng.Text.Trim()=="")||(TB_worker.Text.Trim()==""))
                {
                    MessageBox.Show("页面中有未完成的项目,\n 请完成后提交。");
                }
                else
                {                hw_name = TB_name.Text.Trim();
                    hw_bianma = TB_bianma.Text.Trim();
                    hw_shuliang = int.Parse(TB_shuliang.Text.Trim());   //将TextBox的内容强制转换成int型
                    hw_guige = CBOX_danwei.Text.Trim();
                    hw_rukuriqi = DATE_ruku.Text.Trim();
                    hw_weizhi = CBOX_huojia.Text.Trim() + CBOX_ceng.Text.Trim();
                
                    hw_worker = TB_worker.Text.Trim();                
                     sqlconnet = "insert into [ruku] ([hw_danhao],[hw_name],[hw_shuliang],[hw_guige],[hw_bianma],[hw_rukuriqi],[hw_weizhi],[hw_worker],[hw_beizhu],[hw_admin])"
                    + "values('" + hw_danhao + "','" + hw_name + "','" + hw_shuliang + "','" + hw_guige + "','" + hw_bianma + "','" + hw_rukuriqi + "','" + hw_weizhi + "','" + hw_worker + "','" + hw_beizu + "','" + hw_admin + "')";
                     SqlCommand scmd = new SqlCommand(sqlconnet, conn);
                    SqlDataAdapter sda = new SqlDataAdapter(scmd);
                    DataTable dt = new DataTable();                try
                    {
                        conn.Open();
                        sda.Fill(dt);
                        MessageBox.Show("入库登记成功");
                    }                catch (Exception ex)
                    {
                        MessageBox.Show("数据库异常");
                    }
                    finally
                    {   //关闭数据库连接并释放所占用资源
                      conn.Close();
                    conn.Dispose();
                     scmd.Dispose();
                      sda.Dispose();                  this.Close();
                        
                      
                    }
                }
                
            }        //取消返回
            private void BT_no_Click(object sender, EventArgs e)
            {
                this.Hide();
                
            }    }
    }
      

  3.   

    把combobox的.Text都换成.SelectedItem.Text试验一下。
    再一个就是最好把你选择1,和2的时候,执行前的sql分别贴出来。
      

  4.   

    this.Close();
    这个是你后加的?问题出在这行上
    conn.Dispose();
    去掉就正常了