nbearlite1.0.2.4用mysql时出错

Nov 11, 2009 at 7:18 AM

mm  "Server=localhost;Database=mywork;Uid=root;Pwd=root;"

newDatabase("mm").Select(MyWork.Actions).Where(MyWork.Actions.Id == 1).ToScalar();

提示

DomainModel.TestWorkModel.GetNew:
System.FormatException : 索引(从零开始)必须大于或等于零,且小于参数列表的大小。

在 System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String format, Object[] args)
在 System.String.Format(IFormatProvider provider, String format, Object[] args)
在 System.String.Format(String format, Object[] args)
在 MySql.Data.MySqlClient.Statement.SerializeParameter(MySqlParameterCollection parameters, MySqlStream stream, String parmName)
在 MySql.Data.MySqlClient.Statement.BindParameters()
在 MySql.Data.MySqlClient.PreparableStatement.Execute()
在 MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
在 MySql.Data.MySqlClient.MySqlCommand.ExecuteScalar()
在 NBearLite.Database.DoExecuteScalar(DbCommand command) 位置 f:\application\NBearLite\src\NBearLite\NBearLite\Database.cs:行号 124
在 NBearLite.Database.ExecuteScalar(DbCommand command) 位置 f:\application\NBearLite\src\NBearLite\NBearLite\Database.cs:行号 820
在 NBearLite.SelectSqlSection.ToScalar() 位置 f:\application\NBearLite\src\NBearLite\NBearLite\ExtendedQueryClasses.cs:行号 429

Text SELECT * FROM `Actions` WHERE (`Actions`.`Id` = ?plx6lnfavsncc8q)
Parameters:
?@plx6lnfavsncc8q[Int32] = 1



任何查询,用上where就会出错,不知道是不是NBearLite的问题

Nov 11, 2009 at 7:52 AM

修改SqlQuertUtils.cs  

public static void AddParameters(Dictionary<string, KeyValuePair<DbType, object>> targetParameters, IExpression hp)

中的targetParameters.Add(en.Current.Key.TrimStart("@:?".ToCharArray()), en.Current.Value);

就可以了,至少mysql可以了,其他的没有试