Datatable和try catch逻辑

时间:2015-01-20 16:14:25

标签: c# exception-handling

我在文件夹中有两个文本文件,两个数据表和db中的两个表。每个文件都进入一个数据表,并最终插入到他们在数据库中的表中,所有这些都正常工作,但是我试图将其设置为如果插入失败则文件不会被处理。我一直在尝试使用try catch,但是我无法让它工作,似乎当出现错误时,文本文件被处理并填充在表中。

foreach file enumerate folder
{

if (folder path contains file1)

try
{

     fill datatable

     insert into database
}

catch {}


else if (folder path contains file2)

try
{

     fill datatable

     insert into database
}

catch {}

1 个答案:

答案 0 :(得分:1)

如果我理解了这个问题,那么下面的代码可能有所帮助:

bool databaseUpdatedSuccessfully = false;

using (var Conn = new SqlConnection(_ConnectionString))
{
    try
    {
        Conn.Open();
        using (var ts = new System.Transactions.TransactionScope()) {
            using (SqlCommand Com = new SqlCommand(ComText, Conn))
            {
                // db work
            }
            ts.Complete();
            databaseUpdatedSuccessfully = true;
        }
    }
    catch (Exception Ex)
    {     
        // log exception
    }
}
if (databaseUpdatedSuccessfully)
{
    // process files !
}

以上代码改编自another transaction question的接受答案。