SQL Server Compact的意外输出

时间:2013-04-21 04:03:33

标签: c# asp.net database sql-server-ce

我有一个用于插入和选择的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点所述。

0 个答案:

没有答案