当前位置:编程学习 > C#/ASP.NET >>

为什么会出现未将对象引用设置到对象的实例

--------------------编程问答-------------------- 单步调试一下,看看insertstring这个值是什么。 --------------------编程问答--------------------   "'"+txt1zhiliaofangshi+"',"+"'"+txt2jiliang+"',"+
            "'"+txt3jihua+"',"+"'"+txt4shiji+"',"+
            "'"+txt5starttime+"',"+"'"+txt6endtime+"',"+
            "'"+txt7remindtime+"'"


这里的信息都附值了吗?

null+ 任何信息=null --------------------编程问答-------------------- 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用法吧,拼接容易被注入 --------------------编程问答-------------------- 调试一下,看看“tablename”和“insertstring”是否为null。 --------------------编程问答-------------------- 大多数时候,是因为得到的数据是空的,没有判断 --------------------编程问答-------------------- 什么原因你学断点 调试了
另外
学学分层吧,孩子~
学学EF吧,孩子~


tablename.ToString() 本身是string类型的就不要ToString() --------------------编程问答-------------------- 页面加个label ,看看str输出了什么。无论tablename还是insertstring出现null,都会
有这个错误提示的。
调试下,看看。

string str= "insert into " + tablename.ToString() 
+ " values (" + insertstring.ToString() + ")";  
label.Text=str;
--------------------编程问答-------------------- 兄弟别调了,看看3#吧 --------------------编程问答--------------------
引用 3 楼 dongxinxi 的回复:
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用法吧,拼接容易被注入



以前都是用参数化的,不过这个好多参数代码会多好几倍,而且是内部用基本没有安全性的顾虑 --------------------编程问答--------------------
引用 1 楼 guwei4037 的回复:
单步调试一下,看看insertstring这个值是什么。
我调试insert语句正常,在insert语句之前添加了一句
 sda.InsertCommand.CommandType = CommandType.Text;
然后为将对象引用的错误提示出现在这句话上了。这是什么问题呢,以前用SqlDataAdapter的时候没有接触insertcommand 不太懂。 --------------------编程问答-------------------- 传送门 找些资料学习学习 --------------------编程问答--------------------
//问题已经解决 
将sda.InsertCommand.CommandText = "insert into " + tablename.ToString() + " values (" + insertstring.ToString() + ")";
//改为
sda.InsertCommand =new SqlCommand( "insert into " + tablename.ToString() + " values (" + insertstring.ToString() + ")");
--------------------编程问答-------------------- 除
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,