如果我错过了某个地方的回答,请提前道歉,但我在任何地方都找不到它。所以我正在构建一个应用程序来扫描我们公司获得的PDF服务订单,解析它并将其插入到SQL DB中。问题出在本代码的末尾。它成功了:
这里挂起了一个抛出异常的地方:System.Data.dll中的'System.Data.SqlClient.SqlException'
我预先通过所有工具,因为每个服务订单有多个,但在某个地方出现错误。要清楚我在insert语句上设置了一个断点,并且所有数据都是正确的并且格式正确(“string”int)
我觉得我的联系可能就好了吗?
无论如何,提前感谢您的帮助。
?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
<url>
<loc>http://www.example.org/business/article55.html</loc>
<news:news>
<news:publication>
<news:name>The Example Times</news:name>
<news:language>en</news:language>
</news:publication>
<news:genres>PressRelease, Blog</news:genres>
<news:publication_date>2008-12-23</news:publication_date>
<news:title>Companies A, B in Merger Talks</news:title>
<news:keywords>business, merger, acquisition, A, B</news:keywords>
<news:stock_tickers>NASDAQ:A, NASDAQ:B</news:stock_tickers>
</news:news>
</url>
</urlset>
答案 0 :(得分:2)
using
语句,以确保即使发生异常也会关闭它们。如果您遵循这些指导原则,问题最有可能在您的重构中解决。
请注意,您应始终为列指定正确的类型和长度(如果适用)。也传递实际值,而不是字符串值。
const String strQuery3 = "INSERT INTO TServiceInstruments (sim, sid, sis, sih, sip, lid) VALUES (@sim, @sid, @sis, @sih, @sip, @lid)";
using(var conection = new SqlConnection(strConnString))
using(SqlCommand command = new SqlCommand(strQuery3, connection))
{
command.Parameters.Add(new SqlParameter("@sim", SqlDbType.VarChar, 200){Value = sim});
command.Parameters.Add(new SqlParameter("@sid", SqlDbType.VarChar, 200){Value = sid});
command.Parameters.Add(new SqlParameter("@sis", SqlDbType.VarChar, 200){Value = sis});
command.Parameters.Add(new SqlParameter("@sih", SqlDbType.VarChar, 200){Value = sih});
command.Parameters.Add(new SqlParameter("@sip", SqlDbType.Int){Value = sip});
command.Parameters.Add(new SqlParameter("@lid", SqlDbType.Int){Value = lid});
connection.Open();
command.ExecuteNonQuery();
}
最后注意事项:您确实需要学习如何读取异常,这包括堆栈跟踪,它直接指向出现异常的调用堆栈中的行。如果你能理解这一点,那么调试就变得容易了。
答案 1 :(得分:0)
也许这不值得回答,但我正在努力建立一些声誉,所以这里有:)。
我怀疑你的错误在于“插入TServiceInstruments ...”语句。也就是说,您将为表提供更多(或更少)列。作为一种好的做法,请始终指定列,如下所示:
TextModel model = static_cast<TextModel> (ParserInstance.parse("some text here"));