带串联的C#字符串文字
我有一个ASP.NET C#应用程序,我经常使用逐字字符串文字,例如带串联的C#字符串文字,c#,asp.net,C#,Asp.net,我有一个ASP.NET C#应用程序,我经常使用逐字字符串文字,例如 dbCommand.CommandText = @"INSERT INTO MYTABLE (COLUMN, COLUMN2) VALUES ('data', 'data)"; 这很好,但是当我尝试用一个变量连接字符串时,比如 dbCommand.CommandText = @"INSERT INTO MYTABLE" + Session["table_extension"
dbCommand.CommandText = @"INSERT INTO MYTABLE (COLUMN, COLUMN2)
VALUES ('data', 'data)";
这很好,但是当我尝试用一个变量连接字符串时,比如
dbCommand.CommandText = @"INSERT INTO MYTABLE" + Session["table_extension"] + "(COLUMN, COLUMN2)
VALUES('data','data')";
我在常量中声明换行时出错。在仍然使用@string文本时,如何避免这种情况?将@放在第二个字符串文本之前,或者使用string.Format()将@放在第二个字符串文本之前,或者使用string.Format()这对您很有用
dbCommand.CommandText = @"INSERT INTO MYTABLE" + Session["table_extension"].ToString() + "(COLUMN, COLUMN2)
VALUES('data','data')";
这对你有用
dbCommand.CommandText = @"INSERT INTO MYTABLE" + Session["table_extension"].ToString() + "(COLUMN, COLUMN2)
VALUES('data','data')";
1) 不要连接字符串来生成SQL命令,这非常危险,而且会出错(请参阅SQL注入:)
您应该使用ADO.NET参数()
2) 如果要连接字符串,请使用string.Format,如:
var sql = string.Format("INSERT INTO MyTable ('col1') VALUES ({0})", col1Value);
或者使用具有更好编译时检查功能的新简化语法:
var sql = $"INSERT INTO MyTable (col1) VALUES ('{col1Value}')";
1) 不要连接字符串来生成SQL命令,这非常危险,而且会出错(请参阅SQL注入:)
您应该使用ADO.NET参数()
2) 如果要连接字符串,请使用string.Format,如:
var sql = string.Format("INSERT INTO MyTable ('col1') VALUES ({0})", col1Value);
或者使用具有更好编译时检查功能的新简化语法:
var sql = $"INSERT INTO MyTable (col1) VALUES ('{col1Value}')";
您是否缺少第二个
@
符号dbCommand.CommandText=@“插入MYTABLE”+会话[“table_extension”]+@(列,列2)值('data','data')”代码>您是否缺少第二个@
符号dbCommand.CommandText=@“插入MYTABLE”+会话[“table_extension”]+@(列,列2)值('data','data')”代码>