Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用C#和ASP.NET写入数据并保存到SQL Server数据库_C#_Asp.net_Sql Server - Fatal编程技术网

使用C#和ASP.NET写入数据并保存到SQL Server数据库

使用C#和ASP.NET写入数据并保存到SQL Server数据库,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我对C#很陌生,我想做的是让用户在字段中输入数据,当他们点击submit时,将数据写入数据库。我真的被困住了,任何帮助都将不胜感激 这是我到目前为止所拥有的 我的标记: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Registration.aspx.cs" Inherits="subscribe_Registration" %> <!DOCTYPE html> <html xmlns="htt

我对C#很陌生,我想做的是让用户在字段中输入数据,当他们点击submit时,将数据写入数据库。我真的被困住了,任何帮助都将不胜感激

这是我到目前为止所拥有的

我的标记:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Registration.aspx.cs" Inherits="subscribe_Registration" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Your Earth, Your Home.</title>
<link rel="stylesheet" type="text/css" href="../StyleSheet.css" />
</head>
<body>
<form id="form1" runat="server">
<div class="container">
    <header>
        <img src="../logo.jpg" height="200" />
    </header>
        <nav>
        <ul>
            <li><a href="Default.aspx">Home</a></li>
            <li><a href="about-us.aspx">About Us</a></li>
            <li><a href="gallery.aspx">Image Gallery</a></li>
            <li><a href="http://your-earth-yourhome.blogspot.com.au/">Blog</a></li>
            <li><a href="subscribe/registration.aspx">Subscribe</a></li>
            <li><a href="calendar.aspx">Calendar</a></li>
            <li><a href="donate.aspx">Donate</a></li>
            <li><a href="shop.aspx">Shop</a></li>
        </ul>
    </nav>
    <section>
        <h1>Subscribe</h1>
        <div class="div1">
            <br />
            &nbsp;&nbsp;&nbsp;
            Name:
            <br />
            &nbsp;&nbsp;&nbsp;
            <asp:TextBox ID="txtName" runat="server" Width="200" Height="20"></asp:TextBox>
            <br />
            <br />
            &nbsp;&nbsp;&nbsp;
            Age:<br />
            &nbsp;&nbsp;&nbsp;
            <asp:TextBox ID="txtAge" runat="server" Width="200" Height="20">     </asp:TextBox>
            <br />
            <br />
            &nbsp;&nbsp;&nbsp;
            Sex:<br />
            &nbsp;&nbsp;&nbsp;
            <asp:TextBox ID="txtSex" runat="server" Width="200" Height="20"></asp:TextBox>
            <br />
            <br />
        </div>
        <div class="div2">
            &nbsp;&nbsp;&nbsp;
            Address:<br />
            &nbsp;&nbsp;&nbsp;
            <asp:TextBox ID="txtAddress" runat="server" Width="200" Height="20"></asp:TextBox>
            <br />
            <br />
            &nbsp;&nbsp;&nbsp;
            Email Address:<br />
            &nbsp;&nbsp;&nbsp;
            <asp:TextBox ID="txtEmail" runat="server" Width="200" Height="20"></asp:TextBox>
            <br />
            <br />
            &nbsp;&nbsp;&nbsp;
            Phone Number:<br />
            &nbsp;&nbsp;&nbsp;
            <asp:TextBox ID="txtPhone" runat="server" Width="200" Height="20"></asp:TextBox>
            <br />
            <br />
            &nbsp;&nbsp;&nbsp;
            <asp:Button ID="Button1" runat="server" Text="Subscribe" Width="200" Height="30" OnClick="Button1_Click" />
            <asp:PlaceHolder ID="phSuccess" runat="server" Visible="false">
                <div id="success">
                    <p>Thank you for your registration!</p>
                </div>
            </asp:PlaceHolder>
    </section>
    <aside>
        <div class="links">
            <h3>Here are our affiliates:</h3>
            <ul>
                <li><a href="#">http://www.earthhour.org</a></li>
                <li><a href="#">http://www.50waystohelp.com</a></li>
                <li><a href="#">http://www.greenpeace.org</a></li>
                <li><a href="#">http://www.wwf.org.au/</a></li>
            </ul>
        </div>
    </aside>
    <footer>&copy; Copyright Your Earth, Your Home. All Rights Reserved</footer>
</div>
</form>
</body>
</html>
我还有一门课:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;

namespace Registration
{
    public class Registration
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public string Sex { get; set; }
        public string Address { get; set; }
        public string Email { get; set; }
        public int Phone { get; set; }
    }
}
我真的被困住了,我不知道该从这里走到哪里。我想将用户数据保存到数据库中。不知道最好的方法是什么,也不知道从哪里开始。如果你能给我指出正确的方向,我将非常感谢你的帮助


提前感谢:)

您应该在.cs代码中使用断点。这种程序中最常见的错误是数据库或.cs文件中字段的名称略有不同,因为该服务器的b'coz没有获得数据库中每个字段的值。这是一个错误


所以,正确使用断点并使用调试器来调试程序,以便找到出错的地方

您应该在.cs代码中使用断点。这种程序中最常见的错误是数据库或.cs文件中字段的名称略有不同,因为该服务器的b'coz没有获得数据库中每个字段的值。这是一个错误


所以,正确使用断点并使用调试器来调试程序,以便找到出错的地方

1.在SQL中创建一个
Users
表,用于存储用户数据,以及一个要插入到此表中的存储过程:

CREATE PROCEDURE [dbo].[Procedure]
@Name VARCHAR(50),
@Age VARCHAR(50),
@Sex VARCHAR(50),
@Address VARCHAR(50),
@Email VARCHAR(100),
@Phone VARCHAR(100)
AS
BEGIN
    SET NOCOUNT ON;

    INSERT INTO Users(Name,Age,Sex,[Address],Email,Phone)
    VALUES(@Name,@Age,@Sex,@Address,@Email,@Phone)
END
GO
  protected void Button1_Click(object sender, EventArgs e)
    {
        var reg = new Registration.Registration
        {
            Name = txtName.Text,
            Age = Int32.Parse(txtAge.Text),
            Sex = txtSex.Text,
            Address = txtAddress.Text,
            Email = txtEmail.Text,
            Phone = Int32.Parse(txtPhone.Text)
        };

        this.InsertRegistration(reg);
        phSuccess.Visible = true;
    }

    public void InsertRegistration(Registration.Registration reg)
    {
        try
        {
            using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Database"].ConnectionString))
            {
                using (var cmd = new SqlCommand("dbo.Procedure", conn))
                {
                    cmd.CommandType = CommandType.StoredProcedure;

                    var parameterName = new SqlParameter("@Name", SqlDbType.VarChar, 50);
                    var parameterAge = new SqlParameter("@Age", SqlDbType.VarChar, 50);
                    var parameterSex = new SqlParameter("@Sex", SqlDbType.VarChar, 50);
                    var parameterAddress = new SqlParameter("@Address", SqlDbType.VarChar, 50);
                    var parameterEmail = new SqlParameter("@Email", SqlDbType.VarChar, 100);
                    var parameterPhone = new SqlParameter("@Phone", SqlDbType.VarChar, 100);

                    parameterName.Value = reg.Sex;
                    parameterAge.Value = reg.Age;
                    parameterSex.Value = reg.Email;
                    parameterAddress.Value = reg.Address;
                    parameterEmail.Value = reg.Email;
                    parameterPhone.Value = reg.Phone;

                    cmd.Parameters.Add(parameterName);
                    cmd.Parameters.Add(parameterAge);
                    cmd.Parameters.Add(parameterSex);
                    cmd.Parameters.Add(parameterAddress);
                    cmd.Parameters.Add(parameterEmail);
                    cmd.Parameters.Add(parameterPhone);

                    conn.Open();
                    cmd.ExecuteNonQuery();
                    conn.Close();
                }
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
2.更改代码隐藏文件如下:

CREATE PROCEDURE [dbo].[Procedure]
@Name VARCHAR(50),
@Age VARCHAR(50),
@Sex VARCHAR(50),
@Address VARCHAR(50),
@Email VARCHAR(100),
@Phone VARCHAR(100)
AS
BEGIN
    SET NOCOUNT ON;

    INSERT INTO Users(Name,Age,Sex,[Address],Email,Phone)
    VALUES(@Name,@Age,@Sex,@Address,@Email,@Phone)
END
GO
  protected void Button1_Click(object sender, EventArgs e)
    {
        var reg = new Registration.Registration
        {
            Name = txtName.Text,
            Age = Int32.Parse(txtAge.Text),
            Sex = txtSex.Text,
            Address = txtAddress.Text,
            Email = txtEmail.Text,
            Phone = Int32.Parse(txtPhone.Text)
        };

        this.InsertRegistration(reg);
        phSuccess.Visible = true;
    }

    public void InsertRegistration(Registration.Registration reg)
    {
        try
        {
            using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Database"].ConnectionString))
            {
                using (var cmd = new SqlCommand("dbo.Procedure", conn))
                {
                    cmd.CommandType = CommandType.StoredProcedure;

                    var parameterName = new SqlParameter("@Name", SqlDbType.VarChar, 50);
                    var parameterAge = new SqlParameter("@Age", SqlDbType.VarChar, 50);
                    var parameterSex = new SqlParameter("@Sex", SqlDbType.VarChar, 50);
                    var parameterAddress = new SqlParameter("@Address", SqlDbType.VarChar, 50);
                    var parameterEmail = new SqlParameter("@Email", SqlDbType.VarChar, 100);
                    var parameterPhone = new SqlParameter("@Phone", SqlDbType.VarChar, 100);

                    parameterName.Value = reg.Sex;
                    parameterAge.Value = reg.Age;
                    parameterSex.Value = reg.Email;
                    parameterAddress.Value = reg.Address;
                    parameterEmail.Value = reg.Email;
                    parameterPhone.Value = reg.Phone;

                    cmd.Parameters.Add(parameterName);
                    cmd.Parameters.Add(parameterAge);
                    cmd.Parameters.Add(parameterSex);
                    cmd.Parameters.Add(parameterAddress);
                    cmd.Parameters.Add(parameterEmail);
                    cmd.Parameters.Add(parameterPhone);

                    conn.Open();
                    cmd.ExecuteNonQuery();
                    conn.Close();
                }
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

1.在SQL中创建一个
Users
表,用于存储用户数据,以及一个要插入到此表中的存储过程:

CREATE PROCEDURE [dbo].[Procedure]
@Name VARCHAR(50),
@Age VARCHAR(50),
@Sex VARCHAR(50),
@Address VARCHAR(50),
@Email VARCHAR(100),
@Phone VARCHAR(100)
AS
BEGIN
    SET NOCOUNT ON;

    INSERT INTO Users(Name,Age,Sex,[Address],Email,Phone)
    VALUES(@Name,@Age,@Sex,@Address,@Email,@Phone)
END
GO
  protected void Button1_Click(object sender, EventArgs e)
    {
        var reg = new Registration.Registration
        {
            Name = txtName.Text,
            Age = Int32.Parse(txtAge.Text),
            Sex = txtSex.Text,
            Address = txtAddress.Text,
            Email = txtEmail.Text,
            Phone = Int32.Parse(txtPhone.Text)
        };

        this.InsertRegistration(reg);
        phSuccess.Visible = true;
    }

    public void InsertRegistration(Registration.Registration reg)
    {
        try
        {
            using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Database"].ConnectionString))
            {
                using (var cmd = new SqlCommand("dbo.Procedure", conn))
                {
                    cmd.CommandType = CommandType.StoredProcedure;

                    var parameterName = new SqlParameter("@Name", SqlDbType.VarChar, 50);
                    var parameterAge = new SqlParameter("@Age", SqlDbType.VarChar, 50);
                    var parameterSex = new SqlParameter("@Sex", SqlDbType.VarChar, 50);
                    var parameterAddress = new SqlParameter("@Address", SqlDbType.VarChar, 50);
                    var parameterEmail = new SqlParameter("@Email", SqlDbType.VarChar, 100);
                    var parameterPhone = new SqlParameter("@Phone", SqlDbType.VarChar, 100);

                    parameterName.Value = reg.Sex;
                    parameterAge.Value = reg.Age;
                    parameterSex.Value = reg.Email;
                    parameterAddress.Value = reg.Address;
                    parameterEmail.Value = reg.Email;
                    parameterPhone.Value = reg.Phone;

                    cmd.Parameters.Add(parameterName);
                    cmd.Parameters.Add(parameterAge);
                    cmd.Parameters.Add(parameterSex);
                    cmd.Parameters.Add(parameterAddress);
                    cmd.Parameters.Add(parameterEmail);
                    cmd.Parameters.Add(parameterPhone);

                    conn.Open();
                    cmd.ExecuteNonQuery();
                    conn.Close();
                }
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
2.更改代码隐藏文件如下:

CREATE PROCEDURE [dbo].[Procedure]
@Name VARCHAR(50),
@Age VARCHAR(50),
@Sex VARCHAR(50),
@Address VARCHAR(50),
@Email VARCHAR(100),
@Phone VARCHAR(100)
AS
BEGIN
    SET NOCOUNT ON;

    INSERT INTO Users(Name,Age,Sex,[Address],Email,Phone)
    VALUES(@Name,@Age,@Sex,@Address,@Email,@Phone)
END
GO
  protected void Button1_Click(object sender, EventArgs e)
    {
        var reg = new Registration.Registration
        {
            Name = txtName.Text,
            Age = Int32.Parse(txtAge.Text),
            Sex = txtSex.Text,
            Address = txtAddress.Text,
            Email = txtEmail.Text,
            Phone = Int32.Parse(txtPhone.Text)
        };

        this.InsertRegistration(reg);
        phSuccess.Visible = true;
    }

    public void InsertRegistration(Registration.Registration reg)
    {
        try
        {
            using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Database"].ConnectionString))
            {
                using (var cmd = new SqlCommand("dbo.Procedure", conn))
                {
                    cmd.CommandType = CommandType.StoredProcedure;

                    var parameterName = new SqlParameter("@Name", SqlDbType.VarChar, 50);
                    var parameterAge = new SqlParameter("@Age", SqlDbType.VarChar, 50);
                    var parameterSex = new SqlParameter("@Sex", SqlDbType.VarChar, 50);
                    var parameterAddress = new SqlParameter("@Address", SqlDbType.VarChar, 50);
                    var parameterEmail = new SqlParameter("@Email", SqlDbType.VarChar, 100);
                    var parameterPhone = new SqlParameter("@Phone", SqlDbType.VarChar, 100);

                    parameterName.Value = reg.Sex;
                    parameterAge.Value = reg.Age;
                    parameterSex.Value = reg.Email;
                    parameterAddress.Value = reg.Address;
                    parameterEmail.Value = reg.Email;
                    parameterPhone.Value = reg.Phone;

                    cmd.Parameters.Add(parameterName);
                    cmd.Parameters.Add(parameterAge);
                    cmd.Parameters.Add(parameterSex);
                    cmd.Parameters.Add(parameterAddress);
                    cmd.Parameters.Add(parameterEmail);
                    cmd.Parameters.Add(parameterPhone);

                    conn.Open();
                    cmd.ExecuteNonQuery();
                    conn.Close();
                }
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }


你在坚持什么。。您甚至在哪里调用插入数据库的代码。。我看到了这个事件的代码<代码>按钮1\u单击您知道如何使用调试器吗。。?如果是这样,请在代码中设置一些断点,开始单步执行代码并计算变量等等……我想用按钮1_单击调用代码。创建存储过程或存储过程的最佳方法是什么?我对atm编程很陌生,只是想完成一项任务。编辑:很抱歉,只是阅读了你的全部评论,我会尝试使用调试器,但我只需要一些关于如何将数据保存到数据库的提示。一切正常,只是不确定从这里开始到哪里关于saing to database除了上面的评论之外,你还需要查看你的参数值。按照这种编码方式,您正在尝试将参数的值设置为文本框……您需要指定这些文本框的文本属性。如果这是我的代码,我会将插入逻辑从您的网页移到您的注册类中。您将收到作为参数的值,网页上的唯一代码将是调用Registration.Insertwhat You stack on。。您甚至在哪里调用插入数据库的代码。。我看到了这个事件的代码<代码>按钮1\u单击您知道如何使用调试器吗。。?如果是这样,请在代码中设置一些断点,开始单步执行代码并计算变量等等……我想用按钮1_单击调用代码。创建存储过程或存储过程的最佳方法是什么?我对atm编程很陌生,只是想完成一项任务。编辑:很抱歉,只是阅读了你的全部评论,我会尝试使用调试器,但我只需要一些关于如何将数据保存到数据库的提示。一切正常,只是不确定从这里开始到哪里关于saing to database除了上面的评论之外,你还需要查看你的参数值。按照这种编码方式,您正在尝试将参数的值设置为文本框……您需要指定这些文本框的文本属性。如果这是我的代码,我会将插入逻辑从您的网页移到您的注册类中。您将收到作为参数的值,网页上的唯一代码将是调用Registration.InsertThank You Denys,非常感谢您的帮助:)我收到一个代码错误“找不到类型或命名空间名称“Registration”因此,在代码隐藏文件中添加一个正确的
using
语句,以便它知道注册类的位置。啊,是的,这就是我忘记的。谢谢你的帮助。似乎做了我给你答案的诀窍:)谢谢Denys,非常感谢你的帮助:)我在代码上遇到一个错误“找不到类型或名称空间名称“Registration”,所以在代码隐藏文件中添加一个正确的
,使用
语句,以便它知道注册类所在的位置hh是的,这就是我忘记的。谢谢你的帮助。似乎做了我给你答案的把戏:)