为什么会出现未将对象引用设置到对象的实例
--------------------编程问答-------------------- 单步调试一下,看看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,都会
有这个错误提示的。
调试下,看看。
--------------------编程问答-------------------- 兄弟别调了,看看3#吧 --------------------编程问答--------------------
string str= "insert into " + tablename.ToString()
+ " values (" + insertstring.ToString() + ")";
label.Text=str;
以前都是用参数化的,不过这个好多参数代码会多好几倍,而且是内部用基本没有安全性的顾虑 --------------------编程问答-------------------- 我调试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