代码使用错误的命名空

时间:2017-03-24 15:22:24

标签: c# sql namespaces

我有一个aspx.cs文件,我正在添加代码。我在我的解决方案中拥有所有正确的命名空间和引用,但我的代码引用了错误的命名空间,并在Server server = new Server()

上显示以下错误
  

System.Web.UI是一个'属性',但用作'类型'

using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.IO;
using System.Data.SqlClient;
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace IISLoggingSolution
{
    public partial class Main : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //connection string for SQL DB
            string connectionString = @"Data Source=Computer\SQLEXPRESS;Initial Catalog=IISLogs;Integrated Security=True";

            //Location of the query to be ran
            string script = File.ReadAllText(@"C:\\Users\\User\\Desktop\\query.txt");

            SqlConnection conn = new SqlConnection(connectionString);

            //this is the error line
            Server server = new Server(new ServerConnection(conn));

            //executes query
            server.ConnectionContext.ExecuteNonQuery(script);


        }
    }
}

如何让它使用Microsoft.SqlServer.Management.Smo而不是尝试使用System.Web.UI?

2 个答案:

答案 0 :(得分:2)

using NS_Server = Microsoft.SqlServer.Management.Common;
using System.Web.UI;

...

NS_Server.Server server = new NS_Server.Server();

使用NS_Server的行是别名。当存在名称空间冲突时,您可以将其用作快捷方式。

答案 1 :(得分:0)

您可以使用别名指令:

使用Server = Microsoft.SqlServer.Management ... Server;

如果属性优先,它可能无效,但在那个cas中你只需指定完整的namespade路径。

var server = new Microsoft.SqlServer.Management....Server();