将字符串、浮点数和日期时间值插入 sql 表

Posted

技术标签:

【中文标题】将字符串、浮点数和日期时间值插入 sql 表【英文标题】:Insert String,Float and DateTime values into sql table 【发布时间】:2014-09-05 19:14:02 【问题描述】:

我有一个名为 Table1 的 sql 表,它有 3 列 - Name(string)、Value(float)、Date(datetime)。我想在单击 Button1 时填充表。 所以我有一个“插入”函数,它填充表格和按钮单击函数,从两个文本框获取值。问题是,当我像解释的那样调用“插入”函数时,它给了我一些参数无效的错误消息

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data.SqlClient;
    using System.Web.Services;
    using System.Configuration;

namespace WebApplication1

    public partial class WebForm1 : System.Web.UI.Page
    
        protected void Page_Load(object sender, EventArgs e)
        

        
        [System.Web.Services.WebMethod]  
        public void Insert(string Name, float Value, DateTime DateTime)
        
            string connectionString = ConfigurationManager.ConnectionStrings["FatherDB"].ToString();
            using (SqlConnection con = new SqlConnection(connectionString))
            
                using (SqlCommand cmd = new SqlCommand("Insert into Table1 ((Name) values(@Name) ,(Value) values(@Value),(Date) values(@Date))", con))
                
                    con.Open();
                    cmd.Parameters.AddWithValue("@Name", Name);
                    cmd.Parameters.AddWithValue("@Value", Value);
                    cmd.Parameters.AddWithValue("@Date", DateTime);
                    cmd.ExecuteNonQuery();
                    con.Close();                 
                
            
        

        protected void Button1_Click(object sender, EventArgs e)
        
              DateTime z = DateTime.Now;                   
              string Name = Box1.ToString();
              float Value = float.Parse(Box2.Text);


        Insert(Name, Value, z);
            //Insert(Name, Value, z); want to call the function with parameters from text boxes




        
    

html页面

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
    <script type="text/javascript">


    </script>

    <style>
        .TBox
            position:relative;          
            height:30px;
            width:150px;
            margin-left:10px;         
        
        .Div 
        margin-top:50px;        
        
    </style>

<head runat="server">
    <title></title>
</head>

<body>
    <form id="form1" runat="server">
    <div class="Div">
        <asp:TextBox id="Box1" CssClass="TBox" runat="server">
        </asp:TextBox>

        <asp:TextBox id="Box2" CssClass="TBox" runat="server">
        </asp:TextBox>
        <asp:Button id="Button1" CssClass="TBox" runat="server" Text="Enter"  />     
    </div>        

    </form>

</body>
</html>

【问题讨论】:

错误信息到底是什么? 现在可以正常工作,但表格没有填满 @Arch_interpreter,确保您正在检查正确的数据库。可能你有多个数据库用于开发和生产等 连接字符串设置正确,我只有那个数据库,我很好奇有什么问题。每次我单击按钮时,它都会调用该函数,但是当我单击显示表数据时,它是空的 @Arch_interpreter,您是否尝试在 SQL Server Management Studio 中查看数据? 【参考方案1】:

您的插入语句错误应该是:

"Insert into Table1 (Name,Value,[Date]) values(@Name, @Value,@Date)"

所以替换这个:

using (SqlCommand cmd = new SqlCommand("Insert into Table1 ((Name) values(@Name) ,(Value) values(@Value),(Date) values(@Date))", con))

与:

using (SqlCommand cmd = new SqlCommand("Insert into Table1 (Name,Value,[Date]) values(@Name, @Value,@Date)", con))

见:INSERT Examples (Transact-SQL)

【讨论】:

该死的你真快。我几乎点击了具有相同内容的“发布你的答案”按钮。 +1 @Arch_interpreter,不客气,看来您开始使用 ADO.Net,很高兴看到您使用的是参数而不是连接查询。

以上是关于将字符串、浮点数和日期时间值插入 sql 表的主要内容,如果未能解决你的问题,请参考以下文章

将预定的日期时间值插入 SQL 表

将日期对象放入 MongoDB,使用 pymongo 查询时返回浮点数

xsd 浮点数和空值日期

WEB02_Day04(下)-数据库相关SQL数据类型(整数浮点数字符串日期)

numpy学习之Series结构

SQLite教程(内置日期和时间函数)