-2

コードの何が問題になっていますか? 私のSQLとASPの間の接続を設定すると、次のエラーが表示されます:SQLコマンドが見つかりません。足りないのか……」

これが私のコードです。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.Sql;

  protected void Button2_Click(object sender, EventArgs e)
{
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Connection"].ConnectionString);
    SqlCommand cmd = new SqlCommand("Insert into CarTab( Brand,Model,Plate,Color,Service) Values (@brand,@model,@plate,@color,@year,@service)",conn);

    cmd.CommandType = CommandType.Text;
    cmd.Parameters.AddWithValue("@brand", Label1.Text);
    cmd.Parameters.AddWithValue("@model", Label2.Text);
    cmd.Parameters.AddWithValue("@plate", Label3.Text);
    cmd.Parameters.AddWithValue("@color", Label4.Text);
    cmd.Parameters.AddWithValue("@year", Label5.Text);
    cmd.Parameters.AddWithValue("@service", Label6.Text);

    conn.Open();
    cmd.ExecuteNonQuery();
}

私はすでに Using system.data; を入れました。およびsystem.data.sqlの使用; しかし、それはまだ同じです。エラー : 1.型または名前空間名 'SqlConnection' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?) 2.型または名前空間名 'SqlConnection' が見つかりませんでした (using ディレクティブがありませんか?)またはアセンブリ参照?) 3.名前 'ConfigurationManager' は現在のコンテキストに存在しません 4.型または名前空間名 'SqlCommand' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?) 5.型または名前空間名 'SqlCommand' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

これが私のエラーの解決策を見つけるのに役立つことを願っています. ありがとう

4

5 に答える 5

1

2つのこと。SQL コマンドを閉じていません:

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Connection"].ConnectionString);
SqlCommand cmd = new SqlCommand("Insert into CarTab")

次に、CarTab テーブルに挿入する適切なデータがありませんか? フィールドと値を指定する必要があります。

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Connection"].ConnectionString);
SqlCommand cmd = new SqlCommand("Insert into CarTab(field1, field2) VALUES('val1', 12)")

INSERT SELECT のように、データを挿入する方法は他にもいくつかあります。

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Connection"].ConnectionString);
SqlCommand cmd = new SqlCommand("Insert into CarTab(field1, field2) SELECT field1, field2 FROM Table2")

http://www.sqlteam.com/article/using-select-to-insert-records

コメントに加えて、指定した方法で ADO を完全に使用する方法の例を次に示します。

using System.Data;
using System.Data.SqlClient;

            using (var con = new SqlConnection("your connection string")) {
                con.Open();
                using (var com = con.CreateCommand()) {
                    var var1 = "test";
                    var var2 = "test2";
                    com.CommandText = string.Format("INSERT INTO Table1(col1, col2) VALUES({0}, {1})", var1, var2);
                    com.CommandType = CommandType.Text;
                    com.ExecuteNonQuery();
                }
                con.Close();
            }

私はまだテストしていませんが、良い出発点になるはずです。

于 2012-07-17T06:32:56.167 に答える
0

System.Data アセンブリへの参照を追加しましたか?

于 2012-07-17T06:32:12.947 に答える
0

1) SqlCommand オブジェクトと間違った Sql Insert ステートメントを閉じていません。それはそのようになります

 SqlCommand cmd = new SqlCommand("Insert into CarTab(col1,col2,...) VALUES(val1,val2,..)");

2) 接続を開いておらず、次のようなコマンド オブジェクトに接続を割り当てていません。

 conn.Open();
 cmd.Connection = conn;

3)クエリを実行した後、接続を閉じる必要があります

cmd.ExecuteNonQuery();
conn.Close(); // close the connection.
于 2012-07-17T06:36:10.643 に答える
0

System.Data.Sql は SqlServer 用です

http://msdn.microsoft.com/en-us/library/system.data.sql.aspx

System.Data.Sql 名前空間には、SQL Server 固有の機能をサポートするクラスが含まれています。

ここにある ADO.NET ドライバーを使用します: http://www.mysql.com/products/connector/

または ODBC を使用します (推奨オプションではありません)。

于 2012-07-17T06:46:03.060 に答える
0

どのような db プログラムを使用していますか? 上記のグレイフォックスが言ったように、SQLサーバーが必要なので、この方法で試してみると、次のように機能しました。

 using (SqlConnection connection = new SqlConnection())
        {
            string connectionStringName = this.DataWorkspace.dbsMSccData.Details.Name;

            connection.ConnectionString =
            ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString;

            string procedure = entity.Procedure;
            using (SqlCommand command = new SqlCommand(procedure, connection))
            {
                command.CommandType = CommandType.StoredProcedure;

                //foreach (var item in entity.StoredProcedureParameters)
                //{
                //    command.Parameters.Add(
                //        new SqlParameter(item.ParameterName, item.ParameterValue));
                //}

                connection.Open();
                command.ExecuteNonQuery();
            }
        }
        this.Details.DiscardChanges();
于 2014-05-22T08:49:25.463 に答える