谢谢

解决方案 »

  1.   

    用OleDbCommand:public void ReadMyData(string myConnString) 
    {
       string mySelectQuery = "SELECT OrderID, CustomerID FROM Orders";
       OleDbConnection myConnection = new OleDbConnection(myConnString);
       OleDbCommand myCommand = new OleDbCommand(mySelectQuery,myConnection);
       myConnection.Open();
       OleDbDataReader myReader = myCommand.ExecuteReader();
       try 
       {
         while (myReader.Read()) 
        {
           Console.WriteLine(myReader.GetInt32(0) + ", " + myReader.GetString(1));
        }
       }
          finally 
       {
        // always call Close when done reading.
        myReader.Close();
        // always call Close when done reading.
        myConnection.Close();
     }
    }
      

  2.   

    谢谢,我想参数为一个sql文件的
      

  3.   

    用OSQL.EXE查询过局域网内的SQL SERVER服务器。ADO.NET足够了。只要过滤掉“GO“。
         
        如下:
        using System;
    using System.Xml;
    using System.Data;
    using System.IO;
    using System.Collections;
    using System.Data.SqlClient;如何在C#里面执行.SQL脚本namespace ExecuteSqlFile
    {
     /// <summary>
     /// DBAccess 的摘要说明。
     /// </summary>
     public class DBAccess
     {
      public DBAccess()
      {   
      }  #region 属性  private static string ConStr = "";  private static string ConString
      {
       get
       {
        if(ConStr == "")
        {
         try
         {
          XmlDocument doc = new XmlDocument();
          doc.Load("ServerConfig.xml");    
          
          string userid = doc.SelectSingleNode("ServerConfig/UserId").InnerText;
          string password = doc.SelectSingleNode("ServerConfig/PassWord").InnerText;
          string servername = doc.SelectSingleNode("ServerConfig/ServerName").InnerText;
          string database = doc.SelectSingleNode("ServerConfig/DataBase").InnerText;
          ConStr = "server = " + servername + ";uid = "
           + userid + ";pwd = " + password + ";database = " + database;
         }
         catch(Exception ex)
         {
          throw ex;
         }
        }    return ConStr;
       }
      }  private static SqlConnection Con;
      public static SqlConnection MyConnection
      {
       get
       {
        if(Con == null)
        {
         Con = new SqlConnection(ConString);     
        }
        return Con;
       }
      }
      
      #endregion   
      /// <summary>
      /// 执行Sql文件
      /// </summary>
      /// <param name="varFileName"></param>
      /// <returns></returns>
      public static bool ExecuteSqlFile(string varFileName)
      {
       if(!File.Exists(varFileName))
       {
        return false;
       }   StreamReader sr = File.OpenText(varFileName);
       
       ArrayList alSql = new ArrayList();   string commandText = "";   string varLine = "";   while(sr.Peek() > -1)
       {
        varLine = sr.ReadLine();
        if(varLine == "")
        {
         continue;
        }
        if(varLine != "GO")
        {
         commandText += varLine;
         commandText += "\r\n";
        }
        else
        {
         alSql.Add(commandText);
         commandText = "";
        }
       }
       
       sr.Close();   try
       {
        ExecuteCommand(alSql);
       }
       catch
       {
        return false;
       }   return true;
      }
      private static void ExecuteCommand(ArrayList varSqlList)
      {
       MyConnection.Open();
       SqlTransaction varTrans = MyConnection.BeginTransaction();   SqlCommand command = new SqlCommand();
       command.Connection = MyConnection;
       command.Transaction = varTrans;   try
       {   
        foreach(string varcommandText in varSqlList)
        {
         command.CommandText = varcommandText;
         command.ExecuteNonQuery();
        }
        varTrans.Commit();
       }
       catch(Exception ex)
       {
        varTrans.Rollback();
        throw ex;
       }
       finally
       {
        MyConnection.Close();
       }
      }
     }
    }
      

  4.   

    原理是一样的,只是调用的命令不一样而以。
    http://blog.csdn.net/zhzuo/archive/2004/12/25/229006.aspx
      

  5.   

    orecal的没搞作,作过sqlserver下的,可以用PInvoke调用win32系统的winexec函数,然后调用osql
    命令行来执行sql脚本