나는 문자열 값 키가 :는 SQL Server의 바이너리로 변환 한 후 다시 C#에서 문자열을받는 방법
TxtProductKey.Text has value "key"
인코딩을 데이터 형식의 열에 데이터베이스 테이블에 저장이 값
byte[] Key = Encoding.ASCII.GetBytes(TxtProductKey.Text.Trim());
binary(50) null
.
테이블의 값은 다음과 같습니다 Key
byte [] TempKey = (byte[])LicenseInfo.Tables[0].Rows[0]["ProductKey"];
var newText = Encoding.ASCII.GetString(TempKey);
하지만 난에 무엇입니까 결과 이제
0x6B00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
내가 입력 한 문자열 값에 다시 얻기 위해 노력하고있다
newText
이다 : 나는 최선입니다
k\0\0\0\0\0\00\
뭔가 잘못 됐어? 나는 데이터베이스에 값을 저장하기위한 당신의 제안을
C# 코드를 희망 :
Sqlconnection.Open();
SqlCommand Cmd = new SqlCommand("SpAddAttempts", Sqlconnection);
Cmd.CommandType = CommandType.StoredProcedure;
Cmd.Parameters.Add("@Attempts", SqlDbType.Int).Value = Attempt;
Cmd.Parameters.Add("@Activate", SqlDbType.Bit).Value = Activate;
Cmd.Parameters.Add("@Key", SqlDbType.Binary).Value = Key;
Cmd.ExecuteNonQuery();
CloseConnection();
저장 프로 시저는 다음과 같습니다
는ALTER PROCEDURE [dbo].[SpAddAttempts]
@Attempts INT,
@Activate BIT,
@Key BINARY
AS
BEGIN
UPDATE License
SET Attempts = @Attempts,
Activate = @Activate,
ProductKey = @Key
WHERE LicenseId = '1'
END
오른쪽으로 저장하지 않습니다. 데이터에는 0이 아닌 바이트가 하나 뿐이며 3 바이트가 있어야합니다 (예 :'0x6B657900 ...') – dasblinkenlight
그럴 수 있습니다. 디버그에서 키 바이트 배열의 값이 무엇인지 알 수 있습니까? 그것이 DB 안에 들어가기 전에. 이 예제에서는 db 바이너리 데이터의 한 문자 만 보여줍니다. – farbiondriven
@dasblinkenlight 실수를 표시 할 수 있습니까? 내 저축 코드가 내 게시물에 있습니다. – john