设置连接时出错

时间:2012-07-17 06:29:55

标签: c# asp.net sql

我的代码出了什么问题?当我在我的sql和asp之间建立连接时,它给了我这个错误:无法找到sqlcommand。你错过了吗......“

这是我的代码。

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();
}

我已经使用了system.data;和使用system.data.sql;但它仍然是一样的。 错误: 1.无法找到类型或命名空间名称“SqlConnection”(您是否缺少using指令或程序集引用?) 2.找不到类型或命名空间名称'SqlConnection'(您是否缺少using指令或程序集引用?) 3.当前上下文中不存在名称“ConfigurationManager” 4.找不到类型或命名空间名称'SqlCommand'(您是否缺少using指令或程序集引用?) 5.找不到类型或命名空间名称'SqlCommand'(您是否缺少using指令或程序集引用?)

希望这有助于您找到我的错误的解决方案。感谢

5 个答案:

答案 0 :(得分:1)

两件事。您尚未关闭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();
            }

请注意,我没有测试过,但它应该给你一个很好的起跑线。

答案 1 :(得分:0)

您是否添加了对System.Data程序集的引用?

答案 2 :(得分: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.

答案 3 :(得分:0)

System.Data.Sql适用于SqlServer

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

  

System.Data.Sql命名空间包含支持SQL的类   特定于服务器的功能。

使用此处的ADO.NET驱动程序:http://www.mysql.com/products/connector/

或使用ODBC(不是首选选项)。

答案 4 :(得分:0)

你正在使用什么样的数据库程序?因为像上面这里说的greyfox你需要sql server,并尝试这样做,工作原理:

 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();