我的代码出了什么问题?当我在我的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指令或程序集引用?)
希望这有助于您找到我的错误的解决方案。感谢
答案 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)
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();