我在c ++应用程序中使用MySql C ++ Connector最新版本 但是我对任何表做的每个查询都返回true
E.x。代码:
using Nest;
using System;
using System.Collections.Generic;
using System.Threading;
namespace ElasticBoost
{
class Program
{
static void Main(string[] args)
{
var node = new Uri("http://localhost:9200");
var settings = new ConnectionSettings(node)
.DefaultIndex("boosting")
.DefaultTypeNameInferrer(s => s.Name);
var client = new ElasticClient(settings);
var theList = new List<TheBoostingClass>
{
new TheBoostingClass
{ Important ="bomb",
LessImportant = "kruka",
Garbage = "kalkon"
},
new TheBoostingClass
{ Important ="kalkon",
LessImportant = "bomb",
Garbage = "bomber"
},
new TheBoostingClass
{ Important ="kruka",
LessImportant = "bomber",
Garbage = "bomb"
}
};
if (client.IndexExists("boosting").Exists)
client.DeleteIndex("boosting");
client.CreateIndex("boosting");
client.Map<TheBoostingClass>(m => m
.AutoMap()
.Properties(p => p
.String(s => s
.Name(n => n.Important)
.Boost(30)
)
)
);
client.IndexMany(theList);
Thread.Sleep(1000);
Console.WriteLine("Index Complete");
var x = client.Search<TheBoostingClass>(s => s
.Query(q => q
.Wildcard(w => w
.Field("_all")
.Value("*bomb*")
)
)
);
foreach (var v in x.Documents)
Console.WriteLine(v.Important);
Console.ReadLine();
}
}
[ElasticsearchType]
public class TheBoostingClass
{
public string Important { get; set; }
public string LessImportant { get; set; }
public string Garbage { get; set; }
}
}
上面的代码返回true但是在我的testtbl中没有id = 2数据,我只输入了一个数据,即id = 1 Name = MyTests
有没有人知道解决这个问题的方法?
我试图将returnValue =&#34; true&#34;在try语句中, 我也在catch错误函数中使用了exit(1)函数 没有得到我想要的returnValue为false,这是上述代码的正确返回
答案 0 :(得分:1)
当没有数据需要更新时,这不是一个例外情况。如果连接到数据库或SQL查询语法不正确,将抛出SQLException。
Statement类有executeUpdate()方法,返回受影响的行数,可以用它来实现你的目标。