日期:2014-05-17  浏览次数:20728 次

C# 关于数据库操作字符串的问题
string str_Add = "update tb_Day set Hour9 = '" + random + "'where Day = '"+ day.ToString() +"'";
上面的Hour9 是一个int 型的列名,我可不可以用函数传递(传递的名字是temp )写成
string str_Add = "update tb_Day set '"+ temp  +"' = '" + random + "'where Day = '"+ day.ToString() +"'";
这种操作不合法吗?
C#;?数据库操作;

------解决方案--------------------
string str_Add = "update tb_Day set '"+ temp  +"' = '" + random + "'where Day = '"+ day.ToString() +"'";

temp这里不需要单引号,修改成下面这样
string str_Add = "update tb_Day set "+ temp  +" = '" + random + "'where Day = '"+ day.ToString() +"'";
数据库操作方面,如果不成功,可以加断点,得到str_Add运行时的值,复制到数据库的SqL编辑器中,运行调试下,那样错误出现的很明显。
------解决方案--------------------
引用:
string str_Add = "update tb_Day set '"+ temp  +"' = '" + random + "'where Day = '"+ day.ToString() +"'";

temp这里不需要单引号,修改成下面这样
string str_Add = "update tb_Day set "+ temp  +" = '" + random + "'where Day = '"+ day.ToString() +"'";
数据库操作方面,如果不成功,可以加断点,得到str_Add运行时的值,复制到数据库的SqL编辑器中,运行调试下,那样错误出现的很明显。


这个正解,你其实就是想动态换列