c# - 当前上下文中不存在名称 'sqlDbType'

标签 c# c#-4.0

我要编辑文本框的值..但我看到有问题

  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/

相关文章:

c#-4.0 - 如何将数据从 csv 文件读入 C# 控制台应用程序

c# - 为什么 Type.GetType() 有效而 Assembly.GetType() 无效?

c# - 根据另一个列表过滤一个列表c#

c# - 找出两个字符串是否模糊的最快方法是什么? [不是另一个 Levenshtein 帖子]

c# - EF ComboBox 不显示 SelectedItem 绑定(bind)

c# - 从动态 xml 转换为 C# 对象

c# - 代码 "1\u02ff".IndexOf ("1") 返回 -1

c#-4.0 - 如何订阅 IObservable,但缓冲其中的数据,直到另一个 IObservable 发布?

entity-framework - C# 在 EntityFramework 中删除多个集合的最佳方法

wpf - Silverlight 4等效于WPF “x:static”