-1

データベースの結果をループしたいだけです。現時点で私がやろうとしているのはそれだけです!これは、デバッグしようとすると発生するエラーです。

SQL Server への接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。(プロバイダー: SQL ネットワーク インターフェイス、エラー: 26 - 指定されたサーバー/インスタンスの検索中にエラーが発生しました)

次の行を指しています。

// fill dataset into named table
myAdapter.Fill(myDataSet, "Sent");

ここに私のコード全体があります:

    // get connection strings from app.config
    string conString = ConfigurationManager.ConnectionStrings["Database1ConnectionString"].ConnectionString;

    // connection object
    SqlConnection myConn = new SqlConnection(conString);

    // create adapter
    SqlDataAdapter myAdapter = new SqlDataAdapter("select * from `Sent`", myConn);

    // create command builder
    SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder(myAdapter);

    // create dataset
    DataSet myDataSet = new DataSet();

    // fill dataset into named table
    myAdapter.Fill(myDataSet, "Sent");

    // query using linq
    IEnumerable<DataRow> results
        = from row in myDataSet.Tables["Sent"].AsEnumerable()
          select row;

    // enumerate through results
    foreach (DataRow row in results)
    {
        MessageBox.Show(row.ToString());
    }

これを修正するにはどうすればよいですか? また、誰かが C# でデータベースを使用する簡単な方法を持っている場合、これは私にとってばかげているので (C# でデータベースを操作する)、あなたのアイデアを受け入れます。ご協力ありがとうございました。

2012 年 6 月 29 日更新:

次のコードは私にとってはうまくいきます:

        // get connection strings from app.config
        string conString = ConfigurationManager.ConnectionStrings["Database1ConnectionString"].ConnectionString;

        // connection object
        SqlCeConnection myConn = new SqlCeConnection(conString);

        // create adapter
        SqlCeDataAdapter myAdapter = new SqlCeDataAdapter("select * from [Sent]", myConn);

        // create command builder
        SqlCeCommandBuilder myCommandBuilder = new SqlCeCommandBuilder(myAdapter);

        // create dataset
        DataSet myDataSet = new DataSet();

        // fill dataset into named table
        myAdapter.Fill(myDataSet, "Sent");

        // create new row
        DataRow newRow = myDataSet.Tables["Sent"].NewRow();

        // set field vals
        newRow["sendTo"] = sendTo;
        newRow["subject"] = subject;
        newRow["message"] = message;

        // add new row to table
        myDataSet.Tables["Sent"].Rows.Add(newRow);

        // update database
        myAdapter.UpdateCommand = myCommandBuilder.GetUpdateCommand();
        int updatedRows = myAdapter.Update(myDataSet, "Sent");
        //MessageBox.Show("There were "+updatedRows.ToString()+" updated rows");

        // close connection
        myConn.Close();
4

5 に答える 5

1

SQL Serverがインストールされているマシンで使用しているパスワードを変更しましたか?以前にこれを経験しましたが、新しいパスワードをSQL Server構成に反映してから、サービスを再起動しました。

また、SQL構成設定でTCP/IP設定が有効になっていることを確認してください。

于 2012-12-14T02:04:16.563 に答える
1

まず第一に、接続文字列エラーが「ねえ、データベースに接続できません」と直接言っていることを確認してください

2 番目: select * from Sent (アポストロフィーなし)

于 2012-06-23T21:43:40.033 に答える
0

私は正しいコードを使用していませんでした (接続とは何の関係もありませんでした)。これは、PHP 以外の言語でデータベースに接続しようとした最初のクラックでした。さて、私はおそらく、このコードよりも LINQ または Lambda 式を使用するでしょう。しかし、これが私が使用したものです。

    // get connection strings from app.config
    string conString = ConfigurationManager.ConnectionStrings["Database1ConnectionString"].ConnectionString;

    // connection object
    SqlCeConnection myConn = new SqlCeConnection(conString);

    // create adapter
    SqlCeDataAdapter myAdapter = new SqlCeDataAdapter("select * from [Sent]", myConn);

    // create command builder
    SqlCeCommandBuilder myCommandBuilder = new SqlCeCommandBuilder(myAdapter);

    // create dataset
    DataSet myDataSet = new DataSet();

    // fill dataset into named table
    myAdapter.Fill(myDataSet, "Sent");

    // create new row
    DataRow newRow = myDataSet.Tables["Sent"].NewRow();

    // set field vals
    newRow["sendTo"] = sendTo;
    newRow["subject"] = subject;
    newRow["message"] = message;

    // add new row to table
    myDataSet.Tables["Sent"].Rows.Add(newRow);

    // update database
    myAdapter.UpdateCommand = myCommandBuilder.GetUpdateCommand();
    int updatedRows = myAdapter.Update(myDataSet, "Sent");
    //MessageBox.Show("There were "+updatedRows.ToString()+" updated rows");

    // close connection
    myConn.Close();
于 2012-09-30T11:42:42.393 に答える
0

ここで明らかなことを述べているかもしれませんが、SqlExpress サービスが実行されていることを確認しましたか?

https://stackoverflow.com/a/4650231/1095373

于 2012-09-30T03:08:12.023 に答える
0

この種のエラーは、SQL Server 構成マネージャーで tcp/ip 設定を変更しなかった場合に発生します。したがって、このエラーを解決するには、tcp/ip プロパティを有効にする必要があります。

于 2012-07-02T07:31:39.187 に答える