我对这个问题感到非常困惑.我查看过以前的'错误语法'帖子,但他们有明确的例子.我有一些C#代码将DbContext查询代码写入我的数据库.我在同一查询代码中指向不同字符的更改错误:
db.Database.ExecuteSqlCommand("INSERT INTO AspNetUsers (Id, Email,
EmailConfirmed, PasswordHash, SecurityStamp, UserName, Location, First_Name,
Last_Name, Bio, Online_Collaboration, Instrument, Genre, PhoneNumberConfirmed,
TwoFactorEnabled, LockoutEnabled, AccessFailedCount) " +
"VALUES ('" + muser.Id + "', '" + muser.EmailAddress + "', 1, '" +
muser.SecurityStamp + "', '" + muser.Username + "', '" + muser.Location + "',
'" + muser.FirstName + "', '" + muser.LastName + "', '" + muser.Bio + "', 1,
0, 0, 0, 0, 0, 0)");
Run Code Online (Sandbox Code Playgroud)
错误范围.这些是下面的一些示例,但'x附近的语法'主要在这些字母之间变化:
System.Data.SqlClient.SqlException: 'Incorrect syntax near 't'.'
System.Data.SqlClient.SqlException: 'Incorrect …Run Code Online (Sandbox Code Playgroud) 我试图找出为什么我的dataItems List<List<string>>在循环后没有保存.当我调试它时,它添加到dataItemsList List<string>就好了,每个值为3和6迭代(如预期的那样).
一旦它离开for循环,它就只有6个空列表.
List<List<string>> dataItems = new List<List<string>>();
List<string> dataItemsList = new List<string>();
for (int i = 0; dataReader.Read(); i++)
{
int j = 0;
for (j = 0; j < dataReader.FieldCount; j++)
{
dataItemsList.Add(dataReader[j].ToString());
}
dataItems.Add(dataItemsList);
dataItemsList.Clear();
}
Console.WriteLine(dataItems);
Run Code Online (Sandbox Code Playgroud)
有更多的代码,但我希望它是更局部的东西,因为值是在循环中分配的,但变量是在外部声明的.