English 中文(简体)
在通过SMO进行ql服务器后生成交易的例外
原标题:Exception creating transaction after running sql server backup via SMO

我每次在利用SMO(Sql服务器管理物体)支持我的数据库后试图制造新的交易时,都会发现以下错误:

www.un.org/Depts/DGACM/index_spanish.htm 不允许进行新的交易,因为届会有其他线索。

我创造了一个少许的灯光,表明问题:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SqlServer.Management.Smo;
using System.Data.SqlClient;
using System.Data;

namespace TestSMO
{
    class Program
    {
        string username = "radandba";
        string password = "belmont";
        string servername = "e2idev\e2isqlexpress";
        string databaseName = "e2i";
        string backupfilename = "c:\e2i.bak";
        Server server;

        static void Main(string[] args)
        {
            Program prog = new Program();
            prog.server = new Server(prog.servername);
            prog.server.ConnectionContext.LoginSecure = false;
            prog.server.ConnectionContext.Password = prog.password;
            prog.server.ConnectionContext.Login = prog.username;

            try
            {
                prog.server.ConnectionContext.Connect();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.ReadLine();
                return;
            }

            Console.WriteLine("Connected");
            //prog.SelectData();

            Backup backup = new Backup();
            backup.Action = BackupActionType.Database;
            backup.Database = prog.databaseName;
            backup.Devices.Clear();
            backup.Incremental = false;
            backup.Devices.AddDevice(prog.backupfilename, DeviceType.File);
            backup.BackupSetName = prog.databaseName + " database backup";
            backup.BackupSetDescription = prog.databaseName + " database - Full backup";
            backup.Initialize = true;
            backup.CopyOnly = true;
            backup.LogTruncation = BackupTruncateLogType.NoTruncate;
            backup.CompressionOption = BackupCompressionOptions.Default;

            backup.Complete += new Microsoft.SqlServer.Management.Common.ServerMessageEventHandler(prog.backup_Complete);
            backup.Information += new Microsoft.SqlServer.Management.Common.ServerMessageEventHandler(prog.backup_Information);
            backup.PercentComplete += new PercentCompleteEventHandler(prog.backup_PercentComplete);
            backup.SqlBackupAsync(prog.server);
        }

        void backup_PercentComplete(object sender, PercentCompleteEventArgs e)
        {
            Console.WriteLine("Backup progress: " + e.Percent);
        }

        void backup_Information(object sender, Microsoft.SqlServer.Management.Common.ServerMessageEventArgs e)
        {
            Console.WriteLine("Backup status: No:" + e.Error.Number + " Detail: " + e.Error.Message);
        }

        void backup_Complete(object sender, Microsoft.SqlServer.Management.Common.ServerMessageEventArgs e)
        {
            Console.WriteLine("Backup status: No:" + e.Error.Number + " Detail: " + e.Error.Message);

            SelectData();
        }

        public void SelectData()
        {
            SqlConnection sqlCon = server.ConnectionContext.SqlConnectionObject;

            try
            {
                if (sqlCon.State != System.Data.ConnectionState.Open)
                    sqlCon.Open();

                SqlTransaction trans = sqlCon.BeginTransaction();
                SqlDataAdapter adapter = new SqlDataAdapter("select * from version", sqlCon);
                adapter.SelectCommand.Transaction = trans;
                DataTable dt = new DataTable();
                adapter.Fill(dt);
                foreach (DataRow row in dt.Rows)
                {
                    Console.WriteLine(row[0]);
                }
                trans.Commit();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                sqlCon.Close();
            }
            Console.ReadLine();
        }
    }
}
最佳回答

正如Anders UP所说,没有记录仪表化正在影响。

问题回答

You could try to enable MARS on connection (msdn about MARS) In connection string should be: "MultipleActiveResultSets=true;"





相关问题
SQL SubQuery getting particular column

I noticed that there were some threads with similar questions, and I did look through them but did not really get a convincing answer. Here s my question: The subquery below returns a Table with 3 ...

难以执行 REGEXP_SUBSTR

I m 查询Oracle 10g。 我有两张表格(样本数据见下文)。 i m 试图提取一些领域

SQL Query Shortcuts

What are some cool SQL shorthands that you know of? For example, something I learned today is you can specify to group by an index: SELECT col1, col2 FROM table GROUP BY 2 This will group by col2

PHP array callback functions for cleaning output

I have an array of output from a database. I am wondering what the cleanest way to filter the values is example array Array ( [0] => Array ( [title] => title 1 ...

OracleParameter and DBNull.Value

we have a table in an Oracle Database which contains a column with the type Char(3 Byte). Now we use a parameterized sql to select some rows with a DBNull.Value and it doesn t work: OracleCommand ...

Running numbers in SQL

I have a SQL-statement like this: SELECT name FROM users WHERE deleted = 0; How can i create a result set with a running number in the first row? So the result would look like this: 1 Name_1 2 ...

How to get SQL queries for each user where env is production

I’m developing an application dedicated to generate statistical reports, I would like that user after saving their stat report they save sql queries too. To do that I wrote the following module: ...

热门标签