2010-12-07 3 views
0

Я определил функцию в следующем классе, как этотпространство имен ошибка

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Configuration; 
using MFDBAnalyser; 
using System.Data; 
using System.Data.SqlClient; 
using System.Diagnostics; 
using System.IO; 

namespace MFDBAnalyser 
{ 
    public class PrimaryKeyChecker : IMFDBAnalyserPlugin 
    { 
     public string RunAnalysis(string ConnectionString) 
     { 
      return GetAllPrimaryKeyTables(ConnectionString); 
     } 

     /// <summary> 
     /// This function populates the tables with primary keys in a datagrid dgResultView. 
     /// </summary> 
     /// <param name="localServer"></param> 
     /// <param name="userName"></param> 
     /// <param name="password"></param> 
     /// <param name="selectedDatabase"></param> 
     /// <returns></returns> 
     public string GetAllPrimaryKeyTables(string ConnectionString) 
     { 
      string result = string.Empty; 

      // Query to select primary key tables. 
      string selectPrimaryKeyTables = @"SELECT 
                TABLE_NAME 
                AS 
                TABLES 
               FROM 
                INFORMATION_SCHEMA.TABLE_CONSTRAINTS 
               WHERE 
                CONSTRAINT_TYPE = 'PRIMARY KEY' 
               AND 
                TABLE_NAME <> 'dtProperties' 
              ORDER BY 
                TABLE_NAME"; 

      // put your SqlConnection and SqlCommand into using blocks! 
      using(SqlConnection sConnection = new SqlConnection(ConnectionString)) 
      using(SqlCommand sCommand = new SqlCommand(selectPrimaryKeyTables, sConnection)) 
      { 
       try 
       { 
        // Create the dataadapter object 
        SqlDataAdapter sDataAdapter = new SqlDataAdapter(selectPrimaryKeyTables, sConnection); 
        DataTable dtListOfPrimaryKeyTables = new DataTable("tableNames"); 

        // Fill the datatable - no need to open the connection, the SqlDataAdapter will do that all by itself 
        // (and also close it again after it is done) 
        sDataAdapter.Fill(dtListOfPrimaryKeyTables); 
        using(StringWriter sw = new StringWriter()) 
        { 
         dtListOfPrimaryKeyTables.WriteXml(sw); 
         result = sw.ToString(); 
        } 
       } 
       catch(Exception ex) 
       { 
        //All the exceptions are handled and written in the EventLog. 
        EventLog log = new EventLog("Application"); 
        log.Source = "MFDBAnalyser"; 
        log.WriteEntry(ex.Message); 
       } 
      } 

      // return the data table to the caller 
      return result; 
     } 
    } 
} 

Но когда я называю это, как этот

protected void GetPrimaryKeyTables() 
{ 
    DataTable dtPrimaryKeys = new PrimaryKeyChecker().GetAllPrimaryKeyTables(txtHost.Text, txtUsername.Text, txtPassword.Text, Convert.ToString(cmbDatabases.SelectedValue)); 
    dgResultView.DataSource = dtPrimaryKeys; 
} 

Затем он бросает ошибки как

Ошибка 1 Имя типа или пространства имен 'PrimaryKeyChecker' не найдено (вам не хватает или реактивы сборочный ссылка) D: \ Projects \ Mindfire \ GoalPlan \ MFDBAnalyser \ MFDBAnalyser \ MFDBAnalyser.cs 340 43 MFDBAnalyser

+1

Научиться кода формата здесь. Не так сложно. `Ctrl + K` вокруг блока кода будет делать, если вы не можете определить кнопку 010101 в редакторе. – Oded 2010-12-07 13:44:53

+0

OK спасибо сделаю – Srivastava 2010-12-07 13:58:21

ответ

2

Вы не показали, что с помощью заявления в действительности для GetPrimaryKeyTables(), но вы можете всегда использовать полное имя:

DataTable dtPrimaryKeys = 
     new MFDBAnalyser.PrimaryKeyChecker().GetAllPrimaryKeyTables(...)); 

Я подозреваю, что вы, возможно, опечатка один экземпляр MFDBAnalyser

1

Если класс, который определяет GetPrimaryKeyTables() метод не в пространстве имен MFDBAnalyser, вам необходимо в лать вывод, используя оператор в верхней части этого файла, как так ...

using MFDBAnalyser; 

В качестве альтернативы, вы можете создать экземпляр PrimaryKeyChecker, используя его полное имя, как и ...

DataTable dtPrimaryKeys = new PrimaryKeyChecker().GetAllPrimaryKeyTables(...); 
Смежные вопросы