C#代码总出错,求修改、、、求指导、、、在线等、、、 string sql = string.Format("insert into dbo." + DropDownList1.Text + " values('" + tb[i] + "')", string.Join(",", tb.ToString()));红色部分是表名?你数据库有这张表么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 string[] tb = new string[Panel1.Controls.Count]{}; for (int i = 1; i <= Panel1.Controls.Count; i++) { TextBox t = (TextBox)Panel1.FindControl("textbox[" + i + "]"); if(t!=null) tb[i] = t.Text.ToString(); }具体报什么错误 string sql = string.Format("insert into dbo." + DropDownList1.SelectItem.Text + " values('{0}')", string.Join(",", tb)); sql语句这么写看着有点儿晕啊,全部用占位符写,清晰多了~再打个断点,看看是哪一步出问题了 string[Panel1.Controls.Count]{},提示这里面必须是常量。。 DropDownList1.Text 介个值是多少呢? string[] tb = new string[Panel1.Controls.Count]{};========= string[] tb = new string[Panel1.Controls.Count];调试一下,看具体出错在哪里 string[Panel1.Controls.Count]{},提示这里面必须是常量。。那你就打断点看下这个Count是多少 一开始程序报错说我查询语句中的tb[i]值是空的。。 数组在真正赋值前需要知道数组的大小,使用ArrayList吧。 断点调试之后发现Panel1.Controls.Count,与第一个BUTTON创建的TEXTBOX数目不一样。。 string[Panel1.Controls.Count]{},提示这里面必须是常量。。那你就打断点看下这个Count是多少COUNT是2貌似不对,根据选的表,应该是4个TEXTBOX才对,怎么改呢 string sql = string.Format("insert into dbo." + DropDownList1.Text + " values('" + tb[i] + "')", string.Join(",", tb.ToString()));values中的 tb[i],你的变量i是在循环中起作用的,出了循环这个i就不起作用了,如果你需要把tb中所有的值都插入的话需要重新循环一个字符串,类似string values = string.Empty;foreach(string s in tb){ values += s + ",";}values.Substring(0, values.Length - 2); //去掉最后一个逗号 然后把values替换到tb[i]的位置。按我理解的意思就是这样 看错了,你改的有问题,sql字串那句string sql = string.Format("insert into dbo." + DropDownList1.Text + " values('" + values.Substring(0, values.Length - 2) + "')", string.Join(",", tb.ToString()));你的values是sql语句里的子串,还是要再双引号下的,新的values是创建的变量,要在引号外面的++中间 我断点调试这行不对,找不到PANEL中的TEXTBOX...TextBox txt = this.FindControl("textbox["+i+"]") as TextBox; 我断点调试这行不对,找不到PANEL中的TEXTBOX...TextBox txt = this.FindControl("textbox["+i+"]") as TextBox;还有你下面那句报错,values.Length ,LENGTH不能小于0 求解啊panel.find.control无法获取动态创建的TEXTBOX的值,我断点调试发现找不出TEXTBOXTextBox txt = this.FindControl("textbox["+i+"]") as TextBox; 做增删改 要在最后加上con.Close(); 你看看你动态生成的TExtBox的ID正确不正确??可以在代码中Show一下。 你的生成的TextBox的ID好像没有中括号[]为什么在findcontrol里加了中括号[] 是这样的问题吧,找的是ID为 textbox[1]的东东 断点调试,拿到sql去数据库执行下就知道错那了 //修改 for (int i = 1; i <= Panel1.Controls.Count; i++) { TextBox t = (TextBox)Panel1.FindControl("textbox[" + i + "]"); tb[i] = t.Text.ToString(); string sql = string.Format("insert into dbo." + DropDownList1.Text + " values('" + tb[i] + "')", string.Join(",", tb.ToString()));//亲 你的这个i不会报错吗?i的作用域只在for里面哦 SqlCommand cmd = new SqlCommand(sql, con); cmd.ExecuteNonQuery(); } protected void Button5_Click1(object sender, EventArgs e) { string[] tb = new string[]{}; for (int i = 1; i <= Panel1.Controls.Count; i++) { TextBox t = (TextBox)Panel1.FindControl("textbox[" + i + "]"); tb[i] = t.Text.ToString(); string sql = string.Format("insert into dbo." + DropDownList1.Text + " values('" + tb[i] + "')", string.Join(",", tb.ToString()));//亲 你的这个i不会报错吗?i的作用域只在for里面哦 SqlConnection con = new SqlConnection("server=(Local);database=hdb;uid=sa;pwd=sa@123"); con.Open(); SqlCommand cmd = new SqlCommand(sql, con); cmd.ExecuteNonQuery();con.Close();} } 怎样用TIMER隔些时候点击WEBBROWSER里的元件?(跨线程) datetimepicker 如何用代码打开 UserControl里的TabControl控件的问题 C# 高手们进来帮帮小弟,在对称密钥解密问题上遇到了麻烦 如何解决? 怎么把一个byte[]的内容拷到另外一个byte[]中去? 新人疑问:基类和接口有什么区别? 不会正则表达式,急着用,求会的帮个忙 备份数据库失败 出现操作系统错误 3(系统找不到指定的路径。)。 关于名字空间的问题. ListView垂直滚动条的问题 新人问题..... 为什么会出现“未将对象引用设置到对象的实例”
for (int i = 1; i <= Panel1.Controls.Count; i++)
{
TextBox t = (TextBox)Panel1.FindControl("textbox[" + i + "]");
if(t!=null)
tb[i] = t.Text.ToString();
}具体报什么错误
=========
string[] tb = new string[Panel1.Controls.Count];调试一下,看具体出错在哪里
那你就打断点看下这个Count是多少
那你就打断点看下这个Count是多少
COUNT是2貌似不对,根据选的表,应该是4个TEXTBOX才对,怎么改呢
foreach(string s in tb)
{
values += s + ",";
}
values.Substring(0, values.Length - 2); //去掉最后一个逗号
然后把values替换到tb[i]的位置。按我理解的意思就是这样
还有你下面那句报错,values.Length ,LENGTH不能小于0
TextBox txt = this.FindControl("textbox["+i+"]") as TextBox;
可以在代码中Show一下。
为什么在findcontrol里加了中括号[]
断点调试,拿到sql去数据库执行下就知道错那了
for (int i = 1; i <= Panel1.Controls.Count; i++)
{
TextBox t = (TextBox)Panel1.FindControl("textbox[" + i + "]");
tb[i] = t.Text.ToString();
string sql = string.Format("insert into dbo." + DropDownList1.Text + " values('" + tb[i] + "')", string.Join(",", tb.ToString()));
//亲 你的这个i不会报错吗?i的作用域只在for里面哦
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
}
{
string[] tb = new string[]{};
for (int i = 1; i <= Panel1.Controls.Count; i++)
{
TextBox t = (TextBox)Panel1.FindControl("textbox[" + i + "]");
tb[i] = t.Text.ToString();
string sql = string.Format("insert into dbo." + DropDownList1.Text + " values('" + tb[i] + "')", string.Join(",", tb.ToString()));
//亲 你的这个i不会报错吗?i的作用域只在for里面哦
SqlConnection con = new SqlConnection("server=(Local);database=hdb;uid=sa;pwd=sa@123");
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
con.Close();
}
}