C# stringbuilder 拼接SQL语句报错 StringBuilder sbrow = new StringBuilder();

代码如下,应该修改哪里?

第1个回答  2016-06-12
声明一个共有变量 名称为sb 类型为StringBulider

StringBulider可以简单理解为可变长字符串
用法
sb.Append("abc");
sb.Append("abc");
sb.Append("abc");
最后结果为 sb.toString()=="abcabcabc"
最终占用内存大小为 "abcabcabc"

而string str="abc"+"abc"+"abc";
却相于"abc" "abcabc" "abcabcabc"这三者的所有的内存大小。
每加一次都会丢掉以前的内存,新声明一块内存为了新的字符串

所以在有较多的字符串需要拼接的时候建议用StringBulider变量本回答被网友采纳
第2个回答  2016-06-12
给你的错误提示说是这个变量重复命名了貌似追问

代码是这样的,应该修改哪里?       

   

第3个回答  2016-06-12
在sql里面执行试过吗?你想实现什么功能?猜测是否与关键字重合了。追问

我这是做一个多行删除的命令,如果我只选择一行然后执行是没问题的,但是我选择多行,然后执行就会报这样的错误

追答

    ado.net自带的好像是不能一次执行多条语句的,如果要执行sql脚本文件只能通过调用sql安装目录下某些类库。

    假设一次只能执行一条,还是有办法快速执行多条的,先创建好command,添加好parameter,也就是你上面那样,然后在for循环里面设置不同的参数【值】,并执行。

追问

已解决,原来是在循环的时候没把循环数i给加进去,把i加进去就OK了,你给的最接近问题核心,分给你了

本回答被提问者采纳

...StringBuilder sbrow = new StringBuilder();
StringBulider可以简单理解为可变长字符串 用法 sb.Append("abc");sb.Append("abc");sb.Append("abc");最后结果为 sb.toString()=="abcabcabc"最终占用内存大小为 "abcabcabc"而string str="abc"+"abc"+"abc";却相于"abc" "abcabc" "abcabcabc"这三者的所有的内存大小。每加一次都会丢掉...

C#中SQL如何拼接字符串
1 string pathString = "\\\\database.mdb";2 string conString = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + pathString;3 OleDbConnection DataOleDbConnection = new OleDbConnection(conString);4 DataOleDbConnection.Open();5 OleDbCommand DataOleDbCommand = new OleDbCommand...

内存溢出问题!
C#的代码很少有内存溢出的。你这里肯定是因为用了string的+造成的,string相加需要重新申请新的内存,然后再拷贝相加后的值到新的内存中。你用stringbuilder做string的相加操作就不会有内存溢出的问题了。stringbuilder的使用如下:StringBuilder sb=new StringBuilder();sb.Append("a");sb.Append("b");然...

C#导出Excel单元格合并问题??求大神
cellHeader = CreateHeaderRowCell(header, 4, "矿山中心点坐标", headerStyle); \/\/cellHeader = CreateHeaderRowCell(header, 5, ""); cellHeader = CreateHeaderRowCell(header, 6, "矿区面积", headerStyle); cellHeader = CreateHeaderRowCell(header, 7, "拐点坐标", headerStyle); cellHeader = Crea...

C#怎样把得到的txt文件数据导入DataTable里面!
StringBuilder sb = new StringBuilder(); \/\/读取txt文件,不读第一行数据 while (sysr.Peek() > -1) { if (currentLine == 0) { sysr.ReadLine(); } else { conten = sysr.ReadLine(); sb.AppendLine(conten); \/\/ 把数据以,号分隔 string[] values = conten.Split(','); row = table.New...

...打开新窗口,并在新窗口的TEXTBOX中通过SQL语句显示对应内容_百度...
你打开窗体的时候用 formB.tag(0)= 双击的单元格的值,吧这个参数传到FORMB中,在窗体的load事件中把这个参数获取到string a = formB.tag(0),然后执行sql语句SELECT USED_TIME FROM MF_TZ WHERE TZ_NO=a'。把查询的内容显示到textbox中就可以了啊。不知道是不是你想要的 ...

c# 如何打开和关闭Visio文件
StringBuilder sb = new StringBuilder(); foreach (Microsoft.Office.Core.CommandBar bar in commandBars){sb.Append(string.Format("CommandBar Name:{0}\\r\\n", bar.Name)); foreach(Microsoft.Office.Core.CommandBarControl control in bar.Controls){Microsoft.Office.Core.CommandBarButton button = control...

C#中关于对excl操作
方案1:引用Excel相应的COM组件,通过COM接口,创建Excel应用程序实例,在代码中调用相应的接口方法操作Excel。 大概是Microsoft.Office.Interop.Excel 方案2:把Excel当数据库用,使用Oledb的Excel驱动连接到Excel,使用查询语句对内容进行操作。

GridView实现右键菜单
string sql = "select * from test_users where _id=" + id.ToString(); DataTable dt = DB.GetTable(sql); if (dt.Rows.Count == 0) { Response.Write("error"); return; } DataRow row = dt.Rows[0]; StringBuilder sb = new StringBuilder(); sb.Append(""); sb.AppendFormat("姓名:{0}...

asp.net C# 一页纵向显示多条记录怎么做?代码
StringBuilder sb = new StringBuilder();SqlConnection sqlcn = new SqlConnection(SQL_contion.ConnText);\/\/连接数据库 sqlcn.Open();SqlCommand cmd = new SqlCommand(str, sqlcn);SqlDataReader dr = cmd.ExecuteReader();sb.Append("");while (dr.Read())\/\/循环读取数据插入到StringBuilder字符...

相似回答