我有一个用于插入和选择的SQL Server Compact数据库函数。
public Exception SetPartyDetails(PartyDetails pd)
{
query = "Insert into [Party Details] ( [Name],[Address],[Tin No],[Land Line No],[Mobile No]) values (@Name,@Address,@PartyTin,@LandLineNo,@MobileNo)";
try
{
com = new SqlCeCommand(query , con);
com.Parameters.AddWithValue("@Name",pd.name);
com.Parameters.AddWithValue("@Address",pd.address);
com.Parameters.AddWithValue("@PartyTin",pd.tinNo);
com.Parameters.AddWithValue("@LandLineNo",pd.landLineNo);
com.Parameters.AddWithValue("@MobileNo",pd.mobileNo);
con.Open();
com.ExecuteNonQuery();
con.Close();
retrn = null;
}
catch(Exception e)
{
con.Close();
retrn = e;
}
return retrn;
}
public List<PartyDetails> GetAllPartyDetails()
{
query = "select * from [Party Details] ";
try
{
List<PartyDetails> pls = new List<PartyDetails>();
con.Open();
com = new SqlCeCommand(query, con);
sdr = com.ExecuteReader();
while (sdr.Read())
{
pd = new PartyDetails();
pd.name = sdr.GetString(1);
pd.address = sdr.GetString(2);
pd.tinNo = sdr.GetString(3);
pd.mobileNo = sdr.GetString(4);
pd.landLineNo = sdr.GetString(5);
pls.Add(pd);
}
con.Close();
return pls;
}
catch (Exception)
{
con.Close();
return null;
}
}
当我尝试通过以下代码调用上述功能时
public static void Main()
{
DataBase db = new DataBase();
PartyDetails pd = new PartyDetails();
pd.name = "Chet";
pd.address = "b-77 ved villa colony ";
pd.tinNo = "5346";
pd.mobileNo = "88901505335725";
pd.landLineNo = "014125353297610";
Console.WriteLine(db.SetPartyDetails(pd) + " Sucess prd");
List<PartyDetails> pdl = db.GetAllPartyDetails();
Console.WriteLine(pdl.Count);
foreach (PartyDetails ps in pdl)
{
Console.WriteLine(ps.name);
Console.WriteLine(ps.address);
Console.WriteLine(ps.landLineNo);
Console.WriteLine(ps.mobileNo);
Console.WriteLine(ps.tinNo);
}
}
当我运行上面的代码时,它按预期的第一次插入然后选择运行。给出以下输出:
Output
Sucess prd
1
chet
b-77 ved villa colony
88901505335725
5346
但是当我在不调用插入函数的情况下运行上面的代码时出现问题,它只给出输出0
,这意味着它没有记录但是之前已经完成了插入。我无法弄清楚上面的代码有什么问题。
我尝试了对上述代码的测试,如下所示
1.当我从sql server插入数据时,管理工作室选择功能运行良好。假设我从管理工作室插入2个条目,从上面的代码插入一个。选择功能给出3个条目的输出,这是正确的结果,但这仅在我同时调用插入和选择时发生。只有选择调用它只提供两个由管理工作室插入的条目。
2.当我通过插入代码插入2-3个条目然后同时调用这两个函数时它运行良好并输出2-3个条目。这意味着数据被插入数据库,因为只插入一次入口但是地狱是因为在管理工作室里没有数据变化。
3.按代码插入数据是暂时存储的,因为当我在一段时间后运行我的代码并同时调用这两个函数时,它不会给代码插入的条目只给管理工作室输入...如第1点所述。