我正在使用 c# 并使用 sql 命令来获取、添加、更改 Access db 中的数据。我想做的是检查数据库中的表以获取特定数据或记录。我需要该命令返回一个值(真/假,0/1),该值将指示数据是否存在。我的总体目标是能够运行此检查,如果数据存在,则什么也不做。如果数据不存在,则创建它。有谁知道如何做到这一点。我认为有一种方法可以用 sql 来做到这一点,但我可能是错的。就是这样。我希望我能正确地提出我的问题和问题。
问问题
3644 次
4 回答
1
您需要学习 OledbConnection,包括数据适配器、命令和 SQL 搜索字符串。
http://msdn.microsoft.com/en-us/library/aa288452(v=vs.71).aspx
** 编辑 ** 您可以像这样创建一个私有布尔方法:-
Private Bool RecordMatch()
{
// Perform SQL Search On Data Here, using Data Adapter and populating DataTable.
// If DataTable is null reference return false
// Else Return True
}
于 2012-11-09T15:52:40.793 回答
0
您可以运行一个简单的 SELECT 查询,其中包括一个 WHERE 子句,该子句由与每个添加的项目相对应的唯一值组成,并根据该值进行检查。
于 2012-11-09T15:44:42.390 回答
0
我将采取的方法是获取所有具有匹配数据的行。
SELECT *
FROM yourTable
WHERE
yourTable.field1=value1
AND
yourTable.field2=value2
从那时起,您可以简单地说如果有任何记录,请不要添加新记录。
//we will assume the dt is a DataTable containing the data retrieved from the query
if(dt.rows.count==0)
{
//add the record
}
如果您更喜欢在 SQL 中使用 COUNT,您可以选择记录数
SELECT COUNT(*)
FROM yourTable
WHERE
yourTable.field1=value1
AND
yourTable.field2=value2
并使用 ExecuteScalar (选择返回的第一行的第一列)
//cmd is a command object that is set up to query your database
try
{
int count=Convert.ToInt32(cmd.ExecuteScalar())
if(count==0)
{
//add the record
}
}
catch(Exception ex)
{
//do something with the error
}
于 2012-11-09T15:48:47.127 回答
0
您可以使用 foreach 语句,在其中检查表中的所有行,如果行等于所需行,则返回 true,否则返回 false ...
于 2012-11-09T15:57:13.113 回答