none
怎样将一个文本框的值插入到数据库中? RRS feed

答案

  • protected void Button1_Click(object sender, EventArgs e)
    {
        string Id = this.TextBox1.Text;
        string Name = this.TextBox2.Text;
    
        // 添加数据
        this.AddEmployee(Id, Name);
    }
    
    public void AddEmployee(string fEmployeeId, string fName)
    {
        // 假个定数据表为以下结构, 你还可以下载 PetShop 4.0 的源代码示例
        // 表名 Employee 
        // Id   nvarchar(50  not null
        // Name nvarchar(50) not null
        using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=myDataBase;Integrated Security=SSPI;"))
        {
            SqlCommand comm = new SqlCommand("INSERT INTO Employee (Id, Name) VALUES (@Id, @Name);", conn);
            comm.Parameters.Add("@Id", fEmployeeId);
            comm.Parameters.Add("@Name", fName);
            conn.Open();
            comm.ExecuteNonQuery();
        }
    }

    知识改变命运,奋斗成就人生!
    • 已标记为答案 youer3 2009年8月15日 8:22
    2009年8月15日 7:50
    版主
  • 重新绑定一次数据就能显示新的数据了!
    周雪峰
    2009年8月15日 12:59
    版主
  • 重新读取数据再绑定 ListView 就可以了
    知识改变命运,奋斗成就人生!
    • 已标记为答案 youer3 2009年8月16日 7:41
    2009年8月16日 2:42
    版主

全部回复

  • protected void Button1_Click(object sender, EventArgs e)
    {
        string Id = this.TextBox1.Text;
        string Name = this.TextBox2.Text;
    
        // 添加数据
        this.AddEmployee(Id, Name);
    }
    
    public void AddEmployee(string fEmployeeId, string fName)
    {
        // 假个定数据表为以下结构, 你还可以下载 PetShop 4.0 的源代码示例
        // 表名 Employee 
        // Id   nvarchar(50  not null
        // Name nvarchar(50) not null
        using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=myDataBase;Integrated Security=SSPI;"))
        {
            SqlCommand comm = new SqlCommand("INSERT INTO Employee (Id, Name) VALUES (@Id, @Name);", conn);
            comm.Parameters.Add("@Id", fEmployeeId);
            comm.Parameters.Add("@Name", fName);
            conn.Open();
            comm.ExecuteNonQuery();
        }
    }

    知识改变命运,奋斗成就人生!
    • 已标记为答案 youer3 2009年8月15日 8:22
    2009年8月15日 7:50
    版主
  • 谢谢了。但又出现了一个新问题:怎样捕获异常?然后进行提示。内容重复会抛出异常。
    youl
    2009年8月15日 8:24
  • 看主键重复部分
    http://social.microsoft.com/Forums/zh-CN/295/thread/6b86cb92-b0f5-4131-9e07-066aeacfed0d
    知识改变命运,奋斗成就人生!
    2009年8月15日 8:27
    版主
  • 版主:不要意思,再向你请教一下,当数据插入后,如何让listview刷新?


    youl
    2009年8月15日 8:48
  • 你好!
         使用ListView.Refresh方法来刷新!
    周雪峰
    2009年8月15日 10:38
    版主
  • ListView 示例,你可以重新创建 ListView 的 Items 来刷新显示
    知识改变命运,奋斗成就人生!
    2009年8月15日 10:54
    版主
  • asp.net中怎么没有ListView.Refresh()这个方法?是不是我没有做对。
    youl
    2009年8月15日 12:45
  • 重新绑定一次数据就能显示新的数据了!
    周雪峰
    2009年8月15日 12:59
    版主
  • 在网页中,我用listview显示数据库中的数据,当我在textbox中输入数据后,确定后便插入到数据库中了,问题是怎样才能让listview马上就能显示出我刚才插入到数据库的数据来。
    youl
    2009年8月16日 2:41
  • 重新读取数据再绑定 ListView 就可以了
    知识改变命运,奋斗成就人生!
    • 已标记为答案 youer3 2009年8月16日 7:41
    2009年8月16日 2:42
    版主
  • 谢谢了。我在插入按键里加入了this.ListView1.DataSourceID="SQLclass";就搞定了。我用验证控件解决了不能为空和必须是6位数字的问题,但主键不能重复的提示一直未搞定。不知是否可以请您教我一下。您给发的那个链接我没有看懂。
    youl
    2009年8月16日 3:30
  • 就是在你的提交事件中先从 SQL Server 中查询一次是否有这个主键的记录,没有才插入,有就提示用户主键重复的信息
    知识改变命运,奋斗成就人生!
    2009年8月16日 3:35
    版主
  •                 try
                    {
                        comm.ExecuteNonQuery();
                    }
                    catch(SqlException e)
                    {
                        System.Diagnostics.Debug.Write(e.Message);
                    }
    这样处理后,不会出错,但没有提示。请指教。
    youl
    2009年8月16日 7:38
  •                 try
                    {
                        comm.ExecuteNonQuery();
                    }
                    catch(SqlException e)
                    {
                        System.Diagnostics.Debug.Write(e.Message);
                    }
    这样处理后,不会出错,但没有提示。请指教。
    youl
    操作处理失败才能提示
    因为失败遇到异常 才进入 catch块
    2009年8月16日 11:55
  • 就是操作失败就跳过去了,也没有提示。现在是想怎样让它在操作失败时有提示。
    youl
    2009年8月17日 0:17
  •              catch(Exception e)
                    {
                        System.Diagnostics.Debug.Write(e.Message);
                    }
    试试
    也许失败别的地方 用断点观察一下
    2009年8月17日 1:33