未处理SqlException, ‘0’附近有语法错误

string connectionstring = "data source=(local);initial catalog=MyQQ;" + "integrated security=SSPI;";
SqlConnection connection=new SqlConnection (connectionstring);
connection.Open();
string sql = "insert into T1(c1,c2) values ({0},{1}),t1.Text,t2.Text";
SqlCommand command = new SqlCommand(sql, connection);
int i = command.ExecuteNonQuery();
if (i == 1)
MessageBox.Show("注册成功");
else
MessageBox.Show("注册失败");

错误提示一直指着int i = command.ExecuteNonQuery();这一句说未处理SqlException, ‘0’附近有语法错误
哪位大哥可以说一下到底哪里错了,万分感谢!!!
string sql = "insert into T1(c1,c2) values ({0},{1}),t1.Text,t2.Text";
如果我把这一句改成
string sql = "insert into T1(c1,c2) values (1,100)";话,1,100这2个数就确实可以录入数据库里面,还有,c1,c2列中都是int型的
哪位大哥知道哪里错了,改怎么改?谢谢!!

你试试这个(记住{0}大括号传参数,写成'{0}'永远都不会出错,它不区分int类型,还是其他类型):
string connectionstring = "data source=(local);initial catalog=MyQQ;" + "integrated security=SSPI;";
SqlConnection connection=new SqlConnection (connectionstring);
connection.Open();
string sql = string.Format("insert into T1(c1,c2) values ('{0}','{1}')",t1.Text,t2.Text);
SqlCommand command = new SqlCommand(sql, connection);
int i = command.ExecuteNonQuery();
if (i == 1)
MessageBox.Show("注册成功");
else
MessageBox.Show("注册失败");
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-27
string sql = "insert into T1(c1,c2) values ({0},{1}),t1.Text,t2.Text";
实际的传入参数后的查询语句中存在0并且构建成了错误的语法。好好检查下,注意'' 或者空格。
第2个回答  2011-10-27
string sql = String.Format("insert into T1(c1,c2) values ('{0}','{1}')“,t1.Text,t2.Text);
这句的{0},{1}加上'',varchar字符串格式存入SQL只能够要写成'{0}'
第3个回答  2011-10-27
string sql = String.Format("insert into T1(c1,c2) values ({0},{1})“,t1.Text,t2.Text);
注意,要防止SQL注入。这就建议你参看查询参数相关的资料。
相似回答