本帖最后由 u012619485 于 2013-11-04 16:35:21 编辑

解决方案 »

  1.   

    单步调试一下,看看insertstring这个值是什么。
      

  2.   

      "'"+txt1zhiliaofangshi+"',"+"'"+txt2jiliang+"',"+
                "'"+txt3jihua+"',"+"'"+txt4shiji+"',"+
                "'"+txt5starttime+"',"+"'"+txt6endtime+"',"+
                "'"+txt7remindtime+"'"
    这里的信息都附值了吗?null+ 任何信息=null
      

  3.   

    public class sqlcon
    {
        SqlDataAdapter sda = new SqlDataAdapter(con());
        public void con()
        {
            SqlConnection contest = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=E:\\ghhisweb\\ghhisweb.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
            contest.Open(); 
        }
        public void setinsert(string tablename,string insertstring)
        {
           sda.InsertCommand.CommandText = "insert into " + tablename.ToString() 
    + " values (" + insertstring.ToString() + ")";  //此处出现未将对象引用设置到对象的实例
        }
     
    页面文件:
      protected void lkupdzlxx_Click(object sender, EventArgs e)
        {
            //sqlcon scn = new sqlcon();
            //scn.con();
            this.setinsert("治疗信息",
                "'"+txt1zhiliaofangshi+"',"+"'"+txt2jiliang+"',"+
                "'"+txt3jihua+"',"+"'"+txt4shiji+"',"+
                "'"+txt5starttime+"',"+"'"+txt6endtime+"',"+
                "'"+txt7remindtime+"'");
        }学习一下sqlparameter用法吧,拼接容易被注入
      

  4.   

    调试一下,看看“tablename”和“insertstring”是否为null。
      

  5.   

    什么原因你学断点 调试了
    另外
    学学分层吧,孩子~
    学学EF吧,孩子~
    tablename.ToString() 本身是string类型的就不要ToString()
      

  6.   

    页面加个label ,看看str输出了什么。无论tablename还是insertstring出现null,都会
    有这个错误提示的。
    调试下,看看。string str= "insert into " + tablename.ToString() 
    + " values (" + insertstring.ToString() + ")";  
    label.Text=str;
      

  7.   

    我调试insert语句正常,在insert语句之前添加了一句 sda.InsertCommand.CommandType = CommandType.Text;然后为将对象引用的错误提示出现在这句话上了。这是什么问题呢,以前用SqlDataAdapter的时候没有接触insertcommand 不太懂。
      

  8.   

    //问题已经解决 
    将sda.InsertCommand.CommandText = "insert into " + tablename.ToString() + " values (" + insertstring.ToString() + ")";
    //改为
    sda.InsertCommand =new SqlCommand( "insert into " + tablename.ToString() + " values (" + insertstring.ToString() + ")");