I String-Wert Schlüssel:Wie String zurück in C# erhalten, nachdem in SQL Server, um binäre Umwandlung
TxtProductKey.Text has value "key"
Encode diesen Wert
byte[] Key = Encoding.ASCII.GetBytes(TxtProductKey.Text.Trim());
speichert es in Datenbanktabelle in einer Spalte von Datentyp binary(50) null
.
Der Wert in der Tabelle sieht wie folgt aus:
0x6B00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Jetzt ist es Ich versuche, in String-Wert zurück zu bekommen, die ich eingegeben Key
byte [] TempKey = (byte[])LicenseInfo.Tables[0].Rows[0]["ProductKey"];
var newText = Encoding.ASCII.GetString(TempKey);
ist aber das Ergebnis, das ich in immer bin newText
ist:
k\0\0\0\0\0\00\
Wo bin ich doin g etwas falsch? Ich hoffe auf Ihre Vorschläge
C# -Code für Wert in der Datenbank zu speichern:
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();
Stored Procedure ist:
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
Sie sparen es nicht richtig. Die Daten haben nur ein Nicht-Null-Byte, es sollte drei Bytes haben (d. H. '0x6B657900 ...') – dasblinkenlight
Sie können das tun, können Sie in Debug sehen, was ist der Wert des Key-Byte-Arrays? Bevor es in die DB geht. Das Beispiel zeigt nur ein Zeichen in der db Binärdaten – farbiondriven
@dasblinkenlight Können Sie mir Fehler zeigen? Mein Sicherheitscode ist in meinem Post vorhanden. – john