如何将base64字符串插入数据库而不出错?

时间:2014-01-27 17:57:53

标签: c# sql stored-procedures base64

我需要在我的sql server数据库中插入一个base64字符串。它以等号“=”结束,如果没有得到"incorrect syntax near '='" error,我似乎无法做到。此外,如果字符串以数字开头(例如,"1aBgrfe="),那么我会收到错误“aBgrfe ='附近的语法不正确”。该列的数据类型为NVARCHAR(MAX)。我的c#程序中的sql insert语句是

INSERT INTO MYTABLE VALUES ('" + myBase64String + '")

我知道我可能要编写一个存储过程,这是我以前从未做过的。 任何帮助表示赞赏。谢谢!

2 个答案:

答案 0 :(得分:2)

使用参数化查询,而不是字符串连接

string cmdText = "INSERT INTO MYTABLE VALUES (@str)";
SqlCommand cmd = new SqlCommand(cmdText, connection);
connection.Open();
cmd.Parameters.AddWithValue("@str", myBase64String);
cmd.ExecuteNonQuery();

当然,如果该表中有其他列

,则需要指定列名
string cmdText = "INSERT INTO MYTABLE (colForbase64string) VALUES (@str)";

答案 1 :(得分:0)

尝试在sql中使用Convert()方法。 http://msdn.microsoft.com/en-us/library/ms187928.aspx

"INSERT INTO MYTABLE (YourColumnName) VALUES(NVARCHAR(MAX), '" + myBase64String + "')";