我要编辑文本框的值..但我看到有问题
protected void btn_edit_Click(object sender, EventArgs e)
{
DatabaseConnector con = new DatabaseConnector().CreateInstance();
SqlCommand com = new SqlCommand("UPDATE tbl_BinCardManager SET ItemName = @ItemName WHERE ItemNo = @ItemNo");
com.Parameters.Add("@ItemName",sqlDbType.VarChar);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
错误 1:
The name 'sqlDbType' does not exist in the current context
错误 2:
'ERPSystem.DatabaseConnector' does not contain a definition for 'Open' and no extension method 'Open' accepting a first argument of type 'ERPSystem.DatabaseConnector' could be found (are you missing a using directive or an assembly reference?)
我的 DBConnector 类是:
class DatabaseConnector
{
private DatabaseConnector databaseConnector;
private string connectionString = "Data Source=lernlap;Initial Catalog=ERPSystemDB;User ID=sa;Password=sa123";
public DatabaseConnector()
{
}
private SqlConnection connection;
private bool Connect()
{
try
{
connection = new SqlConnection(connectionString);
connection.Open();
return true;
}
catch(Exception) {
return false;
}
}
internal DatabaseConnector CreateInstance()
{
if (databaseConnector == null)
{
databaseConnector = new DatabaseConnector();
databaseConnector.Connect();
}
return databaseConnector;
}
最佳答案
C# 区分大小写...尝试使用智能感知。
SqlDbType
如果您更正第一个错误,其他错误可能会消失。
附带说明一下,如果没有适当的资源处理,您将遇到连接/内存泄漏。就个人而言,我使用 using
语句来避免陷阱。
我不完全确定“DatabaseConnector”是什么,可能是您自己的类,但您可能应该使用 SqlConnection相反,或者可能是SqlDatabase .
更新:我不确定 DBConnector 类应该是单例还是工厂,或者两者兼而有之 - 所以我只是简化了我的回答以避免使用它。询问另一个问题,详细了解如何创建您正在寻找的模式并提供 DBConnector 类。我认为这是可行的,但我没有足够的信息来修复你所拥有的。
public static CONN_STR = "Data Source=lernlap;Initial Catalog=ERPSystemDB;User ID=sa;Password=sa123";
protected void btn_edit_Click(object sender, EventArgs e)
{
using(SqlConnection con = new SqlConnection(CONN_STR))
{
con.Open();
using(SqlCommand cmd = new SqlCommand("UPDATE tbl_BinCardManager SET ItemName = @ItemName WHERE ItemNo = @ItemNo"), con)
{
// TODO: fill in param values with real values
cmd.Parameters.AddWithValue("@ItemName", "my item name");
cmd.Parameters.AddWithValue("@ItemNo", 1);
cmd.ExecuteNonQuery();
}
}
}
关于c# - 当前上下文中不存在名称 'sqlDbType',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11160290/