你先加个断点在 sql = String.Format(sql,
this.Textname.Text,
this.Texttel.Text,
this.Textintel.Text,
this.TextEmail.Text,
this.Textcompany.Text,
this.Textdepartment.Text,
this.Textposition.Text,
this.Textre.Text); 看执行过这句代码后sql 的值是什么
this.Textname.Text,
this.Texttel.Text,
this.Textintel.Text,
this.TextEmail.Text,
this.Textcompany.Text,
this.Textdepartment.Text,
this.Textposition.Text,
this.Textre.Text); 看执行过这句代码后sql 的值是什么
設個斷點 看sql的值是什麼?看能否能在 sql server 中執行
string aa=textBox1.Text;
string bb=textBox2.Text;
String sql="INSERT INTO telbook
看这个:String sql = "INSERT INTO table(name,pw)values('"+aa+"','"+bb+"')";你确信这个个势力?设置断点看一下!
{
OleDbConnection connection = new OleDbConnection(ConnectionString); String sql = "INSERT INTO telbook (name,tel,in-tel,E-mail,company,department,position,re) VALUES ( '{1} ', '{2} ', '{3} ', '{4} ', '{5} ', '{6} ', '{7} ', '{8} ') ";
sql = String.Format(sql,
this.Textname.Text,
this.Texttel.Text,
this.Textintel.Text,
this.TextEmail.Text,
this.Textcompany.Text,
this.Textdepartment.Text,
this.Textposition.Text,
this.Textre.Text); OleDbCommand command = new OleDbCommand(sql, connection);
connection.Open();
command.ExecuteNonQuery();
connection.Close(); Response.Redirect( "Default.aspx ");
}
我把程序该了一下,因为在ACCESS中我是把ID这个字段设为第一个,所以该成这样的了,需要插入的各字段该这样的了
( '{1} ', '{2} ', '{3} ', '{4} ', '{5} ', '{6} ', '{7} ', '{8} ')
显示的错误是这样的,
索引(从零开始)必须大于或等于零,且小于参数列表的大小。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.FormatException: 索引(从零开始)必须大于或等于零,且小于参数列表的大小。源错误:
行 71:
行 72: String sql = "INSERT INTO telbook (name,tel,in-tel,E-mail,company,department,position,re) VALUES ('{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}')";
行 73: sql = String.Format(sql,
行 74: this.Textname.Text,
行 75: this.Texttel.Text,
这是什么原因呢?
('{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}')
是不行的,
这样子:
('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}')
是可以的
问题解决了
此时再把job换成position,不行的,出现insert into有错误的提示信息
再把position换成job就好了
总结:是position字段的问题
什么问题呢?不明白
" INSERT INTO telbook (name,tel,in_tel,E_mail,company,department,[position],re) VALUES ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}')";
经验:如果提示sql语句有问题,但实在是认为没问题,那就考虑考虑是否把关键字当作普通字段使用了