我试图插入值,以我的表包含VARBINARY(MAX),并将该文件我尝试插入为byte []插入SQL Server中的文件为varbinary(MAX)2008
public DataTable add1(string docName , byte[] doc)
{
DBAdaptor db = new DBAdaptor();
string query = "INSERT INTO [Document] (DocumentName, DocumentData) OUTPUT inserted.DocumentID VALUES (N'" + docName + "' , " + doc + ")";
return db.QueryRide(query);
}
并且我得到以下例外:
对象或列名缺失或为空。对于SELECT INTO 语句,请确认每列都有一个名称。对于其他语句,请查看 以获取空白别名。别名定义为“”或[]是不允许的。 将别名更改为有效的名称。
''附近的语法不正确。
这里是执行我的查询功能:
public DataTable QueryRide(string query)
{
DataTable dt = new DataTable();
string conStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection con = new SqlConnection(conStr);
SqlCommand cmd = new SqlCommand(query, con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
try
{
con.Open();
da.Fill(dt);
}
catch (Exception)
{
throw;
}
finally
{
if (con.State == ConnectionState.Open)
con.Close();
}
return dt;
}
我怎么可以插入这个字节[]我的表?感谢
的可能重复[SQL:顺序上做varbinary列UPDATE .WRITE(http://stackoverflow.com/questions/1942609/sql-sequentially-doing-update- write-on-varbinary-column) – bzlm
您应该**总是**使用**参数化查询**而不是将您的SQL语句连接在一起!否则,你处于SQL注入攻击的高风险.... –