【问题标题】:MSSQL asp.net insert to table doesnt workMSSQL asp.net 插入表不起作用
【发布时间】:2017-11-09 12:01:57
【问题描述】:

让我重新提出这个问题

我有一个 ASP.Net 页面,其中包含数据字段和 2 个按钮,用于检查公司是否存在(这个有效)。

按钮2需要插入值

 [ID]
      ,[BEDRIJF]
      ,[FUNCTIE]
      ,[TITEL]
      ,[VOORNAAM]
      ,[VOORLETTERS]
      ,[TUSSENVOEGSEL]
      ,[ACHTERNAAM]
      ,[SEXE]
      ,[ADRES]
      ,[PCPLAATS]
      ,[LAND]
      ,[EMAIL]
      ,[BRANCHE]
      ,[TELEFOON]
      ,[MOBIEL]
      ,[DATUM_BRIEF]
      ,[VEBAN]
      ,[PAYOFF]

来自页面上的文本框单选按钮和下拉列表。

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

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <asp:Image ID="Image1" runat="server" ImageUrl="~/images/jubels_logo_vlakje_magenta.png" style="margin-left: 0px" />
    <form id="form1" runat="server">
    <div style="margin-left: 80px">
        <asp:Label ID="Label1" runat="server" Text="Ingevoerd Door :"></asp:Label>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:TextBox ID="TextBox1" runat="server" ReadOnly="True"></asp:TextBox>
        <br />
        <asp:Label ID="Label2" runat="server" Text="Bedrijfsnaam :"></asp:Label>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
       <asp:TextBox ID="TextBox17" runat="server"></asp:TextBox>
        <br />
        <asp:Label ID="Label3" runat="server" Text="Branche"></asp:Label>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1" DataTextField="BRANCHE" DataValueField="BRANCHE">
        </asp:DropDownList>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:FUP-DataConnectionString %>" SelectCommand="SELECT [BRANCHE] FROM [Branches]"></asp:SqlDataSource>
        <br />
        <asp:Label ID="Label4" runat="server" Text="Geslacht"></asp:Label>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<asp:RadioButtonList ID="RadioButtonList1" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow">
            <asp:ListItem Value="M">Man</asp:ListItem>
            <asp:ListItem Value="V">Vrouw</asp:ListItem>
        </asp:RadioButtonList>
&nbsp;<br />
        <asp:Label ID="Label5" runat="server" Text="Voorletters "></asp:Label>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
        <br />
        <asp:Label ID="Label6" runat="server" Text="Voornaam "></asp:Label>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:TextBox ID="TextBox6" runat="server"></asp:TextBox>
        <br />
        <asp:Label ID="Label7" runat="server" Text="Tussenvoegsel"></asp:Label>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
        <asp:TextBox ID="TextBox7" runat="server"></asp:TextBox>
        <br />
        <asp:Label ID="Label8" runat="server" Text="Achternaam "></asp:Label>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:TextBox ID="TextBox8" runat="server"></asp:TextBox>
        <br />
        <asp:Label ID="Label9" runat="server" Text="Functie"></asp:Label>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:TextBox ID="TextBox9" runat="server"></asp:TextBox>
        <br />
        <br />
        <asp:Label ID="Label10" runat="server" Text="Straat - huisnummer"></asp:Label>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<asp:TextBox ID="TextBox11" runat="server"></asp:TextBox>
        &nbsp;&nbsp;
        <asp:TextBox ID="TextBox10" runat="server" Width="16px"></asp:TextBox>
        <br />
        <asp:Label ID="Label11" runat="server" Text="Postcode - plaats"></asp:Label>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:TextBox ID="TextBox12" runat="server" Width="41px"></asp:TextBox>
&nbsp;<asp:TextBox ID="TextBox13" runat="server"></asp:TextBox>
        <br />
        <br />
        <asp:Label ID="Label12" runat="server" Text="Telefoon"></asp:Label>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:TextBox ID="TextBox14" runat="server"></asp:TextBox>
        <br />
        <asp:Label ID="Label13" runat="server" Text="Mobiel"></asp:Label>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:TextBox ID="TextBox15" runat="server">06</asp:TextBox>
        <br />
        <asp:Label ID="Label14" runat="server" Text="Email"></asp:Label>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:TextBox ID="TextBox16" runat="server"></asp:TextBox>

        <br />
        <br />
        <asp:Label ID="Label15" runat="server" Text="Brieftext"></asp:Label> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <asp:RadioButtonList ID="RadioButtonList3" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow" style="margin-bottom: 0px">
            <asp:ListItem>Normaal</asp:ListItem>
            <asp:ListItem>EX-Klanten/Propects</asp:ListItem>
            <asp:ListItem>Vormgever</asp:ListItem>
            <asp:ListItem>Fotograaf</asp:ListItem>
        </asp:RadioButtonList>

       <br />
        <asp:Label ID="Label17" runat="server" Text="Ondertekening"></asp:Label>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <asp:RadioButtonList ID="RadioButtonList4" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow">
            <asp:ListItem>Fred</asp:ListItem>
            <asp:ListItem>Jeroen</asp:ListItem>
            <asp:ListItem>Fons</asp:ListItem>
        </asp:RadioButtonList>


        <br />

        <asp:Button ID="Button1" runat="server" Text="Check Database op bestaand record" OnClick="Button1_Click" /><asp:Button ID="Button2" runat="server" Text="Voeg toe aan Database" OnClick="Button2_Click" />
        <br />
        <br />
        <asp:Label ID="Label16" runat="server" Text=""></asp:Label>


        <br />
    </div>
    </form>
</body>
</html>

但是这不起作用,它不会插入,也不会将标签 16 文本更改为已保存数据或未保存数据。

有人能指出按钮不工作的原因吗?

一些见解 SQL 和 SQL 连接不是我的正常编程领域,通常按照同事的要求构建具有简单布局和简单功能的基本 Windows 应用程序。

aspx.cs文件中的按钮点击功能

   protected void Button2_Click(object sender, EventArgs e)
        {

            string connString = ConfigurationManager.ConnectionStrings["FUP-DataConnectionString"].ConnectionString;
            SqlConnection conn = null;
            try
            {
                SqlCommand cmd = new SqlCommand("sp_insert", con);
                cmd.CommandType = CommandType.Text;
                cmd.Parameters.AddWithValue("@BEDRIJF", TextBox17.Text);
                cmd.Parameters.AddWithValue("@VOORNAAM", TextBox6.Text);
                cmd.Parameters.AddWithValue("@ACHTERNAAM", TextBox8.Text);

                con.Open();
                int i = cmd.ExecuteNonQuery();

                if (i != 1)
                {
                    Label16.Text = ("Data Saved");

                    Response.AppendHeader("Refresh", "5;url=Default2.aspx");
                }

                else 

                {
                    Label16.Text = ("Data Not Saved");

                    Response.AppendHeader("Refresh", "5;url=Default2.aspx");
                }
            }
                catch (Exception ex)
                {
                    //log error 
                   //display friendly error to user
                }
                finally
                {
                    if (conn != null)
                    {
                        //cleanup connection i.e close 
                    }
            }

        }
    }

【问题讨论】:

  • 你遇到了什么错误
  • 它没有给出错误它只是没有将值插入到表数据中

标签: asp.net .net sql-server insert


【解决方案1】:

尝试:

cmd.CommandType = CommandType.Text;
            cmd.CommandText = "INSERT INTO Data Values (@BEDRIJF,@VOORNAAM)";
            cmd.Parameters.AddWithValue("@BEDRIJF", BEDRIJF);
            cmd.Parameters.AddWithValue("@VOORNAAM", VOORNAAM);

不要在引号中包含您的参数。

Why I'm getting CS1012: "Too many characters in character literal" and CS0019?

https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparametercollection.addwithvalue(v=vs.110).aspx

【讨论】:

  • 感谢您的编辑,但这些值仍然没有插入到数据库中
  • C# 中带单引号的任何内容都被视为字符(char 类型)。由于参数有多个字符,即它们是一串字符,请使用双引号来包含它们。
  • @Sojab0on 调试时会发生什么?您是否在 SQL 端运行了跟踪以查看那里发生了什么?
  • 谨慎使用 AddWithValue 进行临时查询。它并不总是得到正确的数据类型。 blogs.msmvps.com/jcoehoorn/blog/2014/05/12/…
【解决方案2】:

正如我所见,您正在使用 Parameter wise Insert 所以

string BEDRIJF = TextBox17.Text;
            string VOORNAAM = TextBox6.Text; // Scrub user data
            string VOORLETTERS = TextBox5.Text;
            string Tussenvoegsel = TextBox7.Text;
            string connString = ConfigurationManager.ConnectionStrings["FUP-DataConnectionString"].ConnectionString;
            SqlConnection conn = null;
            try
            {
                conn = new SqlConnection(connString);
                conn.Open();

                using (SqlCommand cmd = new SqlCommand())
                {

                    cmd.CommandType = CommandType.Text;
                    cmd.CommandText = "INSERT INTO Data Values ('@BEDRIJF','@VOORNAAM')";
                    cmd.Parameters.AddWithValue("@BEDRIJF", BEDRIJF);
                    cmd.Parameters.AddWithValue("@VOORNAAM", VOORNAAM);
                    int rowsAffected = cmd.ExecuteNonQuery();
                    if (rowsAffected == 1)
                    {
                        //Success notification
                    }
                    else
                    {
                        //Error notification
                    }
                }
            }
            catch (Exception ex)
            {
                //log error 
                //display friendly error to user
            }
            finally
            {
                if (conn != null)
                {
                    //cleanup connection i.e close 
                }

看看这部分你错了

                cmd.CommandText = "INSERT INTO Data Values ('@BEDRIJF','@VOORNAAM')";
                cmd.Parameters.AddWithValue("@BEDRIJF", BEDRIJF);
                cmd.Parameters.AddWithValue("@VOORNAAM", VOORNAAM);

【讨论】:

  • 感谢您查看代码,但是当我尝试您的更改时,它会返回 cmd.Paramerter 行中字符文字中的许多字符
  • 它会在 cmd.Paramerter 行中返回许多字符文字,你能在这里发布为图像
  • 它已添加到原始帖子中。
  • 谨慎使用 AddWithValue 进行临时查询。它并不总是得到正确的数据类型。 blogs.msmvps.com/jcoehoorn/blog/2014/05/12/…
  • 大坦克寻求帮助,但当我使用按钮添加给定值时,它不会将它们添加到 de DB 中,我在 //向用户显示友好错误时添加了一条消息,所以它如果不添加它们,则将底部的标签更改为 Gegevens niet toegevoegd aan de database。如果它在 //Success 通知点这样做,它会将相同的标签更改为 De Ingevoerde gegeevns zijn aan database toegevoegd。添加了我的登录页面按钮代码,用于验证同一数据库中用户表的用户,不能更改该代码以插入字符串值
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-19
  • 2018-12-21
  • 1970-01-01
  • 2014-04-12
  • 1970-01-01
相关资源
最近更新 更多