Je veux créer un GUID et le stocker dans la firebase database.
En C #, un guid peut être créé avec Guid.NewGuid (). Cela crée un entier de 128 bits. SQL Server possède une colonne uniqueidentifier qui contient un nombre hexadécimal énorme.
Existe-t-il un moyen approprié / bon pour que les règles C # et SQL Server fonctionnent bien ensemble? (c.-à-d. créer un guide utilisant Guid.New () et le stocker dans la firebase database en utilisant nvarchar ou un autre champ … ou créer un nombre hexadécimal du formulaire attendu par SQL Server par d’autres moyens)
SQL attend le GUID en tant que chaîne. Ce qui suit dans C # renvoie une chaîne attendue par SQL.
"'" + Guid.NewGuid().ToSsortingng() + "'"
Quelque chose comme
INSERT INTO TABLE (GuidID) VALUE ('4b5e95a7-745a-462f-ae53-709a8583700a')
est ce que cela devrait ressembler en SQL.
Voici un extrait de code montrant comment insérer un Guid en utilisant une requête paramétrée:
using(SqlConnection conn = new SqlConnection(connectionSsortingng)) { conn.Open(); using(SqlTransaction trans = conn.BeginTransaction()) using (SqlCommand cmd = conn.CreateCommand()) { cmd.Transaction = trans; cmd.CommandText = @"INSERT INTO [MYTABLE] ([GuidValue]) VALUE @guidValue;"; cmd.Parameters.AddWithValue("@guidValue", Guid.NewGuid()); cmd.ExecuteNonQuery(); trans.Commit(); } }
Vous pouvez transmettre une valeur Guid C # directement à une procédure stockée SQL en spécifiant SqlDbType .UniqueIdentifier
.
Votre méthode peut ressembler à ceci (à condition que votre seul paramètre soit le Guid):
public static void StoreGuid(Guid guid) { using (var cnx = new SqlConnection("YourDataBaseConnectionSsortingng")) using (var cmd = new SqlCommand { Connection = cnx, CommandType = CommandType.StoredProcedure, CommandText = "StoreGuid", Parameters = { new SqlParameter { ParameterName = "@guid", SqlDbType = SqlDbType.UniqueIdentifier , // right here Value = guid } } }) { cnx.Open(); cmd.ExecuteNonQuery(); } }
Voir aussi: uniqueidentifier
SQL Server
Stockez-le dans la firebase database dans un champ avec un type de données uniqueidentifier.
// Create Instance of Connection and Command Object SqlConnection myConnection = new SqlConnection(GentEFONRFFConnection); myConnection.Open(); SqlCommand myCommand = new SqlCommand("your Procedure Name", myConnection); myCommand.CommandType = CommandType.StoredProcedure; myCommand.Parameters.Add("@orgid", SqlDbType.UniqueIdentifier).Value = orgid; myCommand.Parameters.Add("@statid", SqlDbType.UniqueIdentifier).Value = statid; myCommand.Parameters.Add("@read", SqlDbType.Bit).Value = read; myCommand.Parameters.Add("@write", SqlDbType.Bit).Value = write; // Mark the Command as a SPROC myCommand.ExecuteNonQuery(); myCommand.Dispose(); myConnection.Close();