2012-10-22 2 views
0

ajax 제어 툴킷을 사용하여 사용할 수있는 기본 텍스트 편집기를 사용하고 있으며 사용자가 편집기에 붙여 넣을 수있는 이미지를 데이터베이스에 저장해야합니다. 데이터베이스의 열 (MAX) VARBINARY하지만 내가 저장하려고하면 나는 그런 다음 매개 변수 정의에 너무Ajax Control Toolkit 편집기에서 SQL 데이터베이스로 이미지 저장

var subgrantdesc = Convert.ToByte(grantdescription_editor.Content); 

처럼 바이트 내가 나중에 컨텐츠를 변환

Implicit conversion from data type nvarchar(max) to varbinary(max) is not allowed. Use the CONVERT function to run this query

아래의 오류

System.FormatException: Input string was not in a correct format. at System.Number.StringToNumber....

: 나는 오류가 그러나 나는이

var param0 = new SqlParameter(); 
param0.ParameterName = "@desc"; 
param0.SqlDbType = System.Data.SqlDbType.VarBinary; 
param0.Value = subgrantdesc; 
sql.Parameters.Add(param0); 

위의 오류는 Byte으로 변환되는 코드 행을 가리 킵니다. 편집기 컨트롤을 통해 SQL 서버 데이터베이스에 입력 한 데이터 (이미지 및 텍스트)를 어떻게 저장할 수 있는지 알고 싶습니다. 또한 HTML 서식을 유지할 것인지 알고 싶습니다.

도움이 될 것입니다.

답변

0

이 문제를 해결하는 데는 두 가지 방법이 있습니다. 하나 : 은 바이트 var의 길이를 제공합니다. here

using(SqlCommand cmd = new SqlCommand("INSERT INTO mssqltable(varbinarycolumn) VALUES (@binaryValue)", conn)) 
{ 
    // Replace 8000, below, with the correct size of the field 
    cmd.Parameters.Add("@binaryValue", SqlDbType.VarBinary, 8000).Value = arraytoinsert; 
    cmd.ExecuteNonQuery(); 
} 

두에서 :

string data = "0x" + BitConverter.ToString(subgrantdesc).Replace("-", ""); 
BitConverter를 사용
관련 문제