GuidsSQLite参数问题我在使用参数时在SQLite(0.4.8)中使Guids匹配时遇到问题,当我使用类似userGuid='guidhere'的东西时,它可以工作,但是userGuid=@GuidHere没有。有人有想法吗?创建:CREATETABLEUsers(UserGuidTEXTPRIMARYKEYNOTNULL,FirstNameTEXT,LastNameTEXT)示例数据:INSERTINTOUsers(UserGuid,FirstName,LastName)VALUES('e7bf9773-8231-44af-8d53-e624f0433943','Bobby','Bobston')deletestatement(working):DELETEFROMUsersWHEREUserGuid='e7bf9773-8231-44af-8d53-e624f0433943'deletestatement(notworking):DELETEFROMUsersWHEREUserGuid=@UserGuid这是显示我的问题的那个C#程序:使用系统;使用System.Data.SQLite;命名空间SQLite_Sample_App{类程序{staticvoidMain(string[]args){Do();控制台.Read();}staticvoidDo(){using(SQLiteConnectionMyConnection=newSQLiteConnection("DataSource=:memory:;Version=3;New=True")){MyConnection.Open();SQLiteCommandMyCommand=MyConnection.CreateCommand();MyCommand.CommandText=@"CREATETABLEUsers(UserGuidTEXTPRIMARYKEYNOTNULL,FirstNameTEXT,LastNameTEXT);INSERTINTOUsers(UserGuid,FirstName,LastName)VALUES('e7bf9773-8231-44af-8d53-e624f0433943','鲍比','鲍勃斯顿');";MyCommand.ExecuteNonQuery();MyCommand.CommandText="SELECTCount(*)FROMUsersWHEREUserGuid='e7bf9773-8231-44af-8d53-e624f0433943'";Console.WriteLine("方法一:{0}",MyCommand.ExecuteScalar());MyCommand.Parameters.AddWithValue("@UserGuid",newGuid("e7bf9773-8231-44af-8d53-e624f0433943"));MyCommand.CommandText="SELECTCount(*)FROMUsersWHEREUserGuid=@UserGuid";Console.WriteLine("MethodTwo:{0}",MyCommand.ExecuteScalar());}}}}编辑:嗯,似乎AddParamWithValue转换为Guid的16字节表示,所以我想我真的有首先将所有guid转换为字符串...尝试将GUID字符串而不是GUID对象传递给AddWithValue调用有点烦人。而不是MyCommand.Parameters.AddWithValue("@UserGuid",newGuid("e7bf9773-8231-44af-8d53-e624f0433943"));这样做:以上就是C#学习教程的全部内容:GuidsSQLite参数问题分享,如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注—MyCommand.Parameters.AddWithValue("@UserGuid","e7bf9773-8231-44af-8d53-e624f0433943");代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
