1

Web.config に「 myConn 」という名前の正しい形式の接続文字列が既にあるとします。データベースは別のサーバー上にあり、MySQL です。ASP.NET Web アプリでこのデータベースに接続するにはどうすればよいですか?

私が試したこと:
ADO.NET C# DbContext Generator With WCF Support」をインストールしようとしましたが、これはエラー メッセージ「The assembly reference "System.Data.Entity" could not be added to the project. このウィザードは引き続き実行されますが、結果のプロジェクトが正しくビルドされない可能性があります。'

ノート:

  • Visual Studio 2010 (バージョン 10.0.40219.1 SP1Rel) の使用
  • .NET Framework 2.0 の使用
4

4 に答える 4

4

ODBC(唯一のオプションではない)を想定すると、次の問題になります。

OdbcConnection conn = new OdbcConnection(connectionString);
conn.Open();

編集:ああ、そしてそれがあなたが疑問に思っていたweb.configからそれを取得していた場合(おそらくそうではありませんが、誰が知っていますか)、その部分は次のようになります:

string connectionString = System.Configuration.ConfigurationManager.AppSettings["myConn"].ToString(); //ToString here is optional unless you're doing some weirdness in the web.config

ご要望に応じて、obdcデータ操作の背後にある基本事項は次のとおりです。

以下は、クエリタイプのステートメントの場合です。

string command = "SELECT Something FROM SomeTable WHERE SomethingElse = '%" + "@Parameter1" + "%' AND SomethingElseStill LIKE '%" + @Parameter2 + "%' ";
using (OdbcConnection connection = new OdbcConnection(connectionString))
{
    OdbcCommand command = new OdbcCommand(command, conn);
    command.Parameters.Add("@Parameter1", OdbcType.VarChar, 255);
    command.Parameters["@Parameter1"].Value = "SomeString"
    command.Parameters.Add("@Parameter2", OdbcType.Int);
    int SomeInteger = 1;
    command.Parameters["@Parameter2"].Value = SomeInteger;
    OdbcDataAdapter adapter = new OdbcDataAdapter(command,con);
    DataSet Data = new DataSet();
    adapter.Fill(Data);
}

これにより、データベースからデータが取得され、OdbcDataAdapterオブジェクトを使用してDataTableオブジェクトにプッシュされます。これが唯一の方法ではありませんが、確かに最も基本的な方法です。少しの反省を使用して、結果を必要なオブジェクトのリストに変換する方法については、このすばらしい答えを見てください。LINQのようなものを使用して、データをカスタムクラスにマップすることもできますが、そのビットはあなたに任せます。

とにかく、これは同じですが、クエリはありません。

string command = "INSERT INTO SomeTable (column1, column2, column3) VALUES '%" + "@Parameter1" + "%', '%" + "@Parameter2" + "%', '%" + "@Parameter3" + "%' ";
using (OdbcConnection connection = new OdbcConnection(connectionString))
{
    OdbcCommand command = new OdbcCommand(command, conn);
    command.Parameters.Add("@Parameter1", OdbcType.VarChar, 255);
    command.Parameters["@Parameter1"].Value = "SomeString"
    command.Parameters.Add("@Parameter2", OdbcType.Int);
    int SomeInteger = 1;
    command.Parameters["@Parameter2"].Value = SomeInteger;
    command.Parameters.Add("@Parameter3", OdbcType.VarChar, 255);
    command.Parameters["@Parameter3"].Value = "SomeOtherStringOrSomething";
    command.ExecuteNonQuery();
}

どんな種類のIDEでもないStackOverflowエディターで書いたので、引用符などを健全性チェックしてください。残念ながら、構文が強調表示されません:P

于 2012-07-30T14:15:44.317 に答える
0

.NET 2.0 を使用しているため、エンティティ フレームワークまたはSystem.Data.Entity.

于 2012-07-30T15:23:52.887 に答える
0

それが別のサーバーであり、同じ資格情報を持つ同じデータベースである場合は、接続文字列を新しいサーバーの IP アドレスにポイントするだけで機能します。

于 2012-07-30T14:08:23.240 に答える
0

参照先を確認してください: System.Data.DataSetExtensions

コード

 using System.Data.Odbc;

 private const string ConnStr = "Driver={MySQL ODBC 3.51    Driver};
 Server=localhost;Database=test;uid=root;pwd=;option=3";

また、接続文字列をweb.configに入れることもできます..

于 2012-07-30T14:27:24.353 に答える