如何使用C#和SQL Server连接数据库

4
这是一个HTML表单;我想使用C#将这个表单中的值插入到我的SQL Server表中。 我尝试添加,但不知道如何建立正确的连接并如何使用来自这个简单表单的数据将其添加到数据库中。 我正在使用Microsoft SQL Server Management Studio,已经拥有实际的数据库和服务器。
<form id="form1" runat="server">
    <h1> Find and search about any employee in Faten</h1>
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
    <input id="ID" type="text" />
    <input id="name" type="text" />
    <input id="lname" type="text" />
    <input id="pass" type="text" />

    <input id="Submit1" type="submit" value="submit" />
</form>

这是我的C#代码

protected void Button1_Click(object sender, EventArgs e)
{
    String query = "INSERT INTO Ruser(ID, Name, Lname, pass) VALUES (@ID, @name, @lanme, @pass);";

    SqlConnection connection1 = new SqlConnection();

    SqlCommand cmd = new SqlCommand(query, connection1);
    cmd.CommandType = CommandType.TableDirect;

    cmd.Parameters.AddWithValue("@Id", "33");
    cmd.Parameters.AddWithValue("@name", "abc");
    cmd.Parameters.AddWithValue("@lanme", "abc");
    cmd.Parameters.AddWithValue("@pass", "abc");

    connection1.Open();
    int result = cmd.ExecuteNonQuery();

    // Check Error
    if (result < 0)
        Console.WriteLine("Error inserting data into database!");
}

Dan Guzman说:"AddWithValue 是邪恶的" - 请阅读这篇文章并停止使用它! - marc_s
1个回答

3
您可以使用这个:
var connStr = "Data Source=ServerName;Initial Catalog=DataBaseName;Integrated Security=SSPI";
using(SqlConnection openCon=new SqlConnection(connStr))
{
}

或者:

var connStr = "Data Source=ServerName;Initial Catalog=DataBaseName;Userid=UserName;Password=Secret";
using(SqlConnection openCon=new SqlConnection(connStr))
{
}

但更好的做法是将你的连接字符串保存在webconfig中,或者如果你使用的是.netcore,则保存在appsetting文件中,并从中读取。


哈萨,我做了所有这些,但仍然存在同样的问题,没有数据添加到表中。你看到上面的代码中是否有任何问题? - Yousef Shawamreh
Hassan先生展示了正确且非常好的代码。你可能应该在连接打开时加上try catch和using语句。 - benjamin moskovits
@ Benjamin Moskovits,当然可以。我只是想展示一下连接字符串,但我已经编辑了我的代码,感谢您的关注。 - hassan.ef

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接