将文本框值插入数据库表

时间:2011-11-22 16:13:16

标签: c# asp.net sql sql-server

将文本框值插入SQL Server表的最简单,最类似SQL的方法是什么?我找到了几种方法,而且所有这些方法都太复杂了,我想做的这件简单的事情。

4 个答案:

答案 0 :(得分:6)

如果LINQ对你来说太陌生,你仍然可以用老式的方式做事:

string statement = "INSERT INTO mytable(mycolumn) VALUES (@text)";
SqlCommand command = new SqlCommand(statement);
command.Parameters.AddWithValue("@text", myTextBox.Text);

try{
    SqlConnection connection = new SqlConnection(myConnectionString);
    connection.Open();
    command.Connection = connection;
    command.ExecuteNonQuery();
} catch {
    //do exception handling stuff
}

修改:这是另一个使用using确保清除混乱的版本:

string statement = "INSERT INTO mytable(mycolumn) VALUES (@text)";

using(SqlCommand command = new SqlCommand(statement))
using(SqlConnection connection = new SqlConnection(myConnectionString)) {
    try{
        command.Parameters.AddWithValue("@text", myTextBox.Text);
        connection.Open();
        command.Connection = connection;
        command.ExecuteNonQuery();
    } catch {
        //do exception handling stuff
   }
}

答案 1 :(得分:1)

如果您想快速执行某些操作,请使用LINQ to SQL。它将照顾您的数据访问层&业务对象。

转到Visual Studio上的LINQ to SQL Classes&映射您的SQL服务器并添加您想要的任何表。

然后,您可以使用它在后面的代码中创建的对象来更新文本框中的值。

http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx

答案 2 :(得分:1)

public string ConnectionString
{
    get
    {
        //Reading connection string from web.config
        return ConfigurationManager.ConnectionStrings["ConnectionName"].ConnectionString;
    }
}

public bool InsertEmployee()
{
    bool isSaved = false;
    int numberOfRowsAffected = 0;
    string query = @"INSERT INTO Employee(EmployeeName, EmailAddress)
                        VALUES (@EmployeeName, @EmailAddress);
                        SELECT @@IDENTITY AS RowEffected";
    SqlCommand cmd = new SqlCommand();
    cmd.CommandText = query;
    cmd.CommandType = System.Data.CommandType.Text;
    cmd.Parameters.Add(new SqlParameter("@EmployeeName", txtEmployeeName.Text));
    cmd.Parameters.Add(new SqlParameter("@EmailAddress", txtEmailAddress.Text));
    try
    {
        using (SqlConnection cn = new SqlConnection(ConnectionString))
        {
            cmd.Connection = cn;
            cn.Open();
            object result = cmd.ExecuteScalar();
            isSaved = Convert.ToInt32(result) > 0 ? true : false;
        }
    }
    catch (Exception ex)
    {
        isSaved = false;
    }
    return isSaved;
}

但是,在多层或多层应用程序中,您需要创建DTO(数据传输对象)以将数据从一层传递到另一层(或层到层)

答案 3 :(得分:0)

这是一种简单的方法。由于行数Inserting Data in SQL Database

,它看起来很复杂