C# Can';由于日期转换,无法插入到我的表中
我有一个带有ajax日历扩展器的文本框和一个按钮。当我点击按钮时,它必须触发一个代码,将一条新记录插入到表“Material”中。这是我的文本框代码C# Can';由于日期转换,无法插入到我的表中,c#,asp.net,C#,Asp.net,我有一个带有ajax日历扩展器的文本框和一个按钮。当我点击按钮时,它必须触发一个代码,将一条新记录插入到表“Material”中。这是我的文本框代码 <asp:TextBox ID="txtDateDG" runat="server" Height="25px" Width="162px" ontextchanged="txtDateDG_TextChanged" AutoPostBack="true" CssClass="TextBox"></asp:TextB
<asp:TextBox ID="txtDateDG" runat="server" Height="25px" Width="162px"
ontextchanged="txtDateDG_TextChanged" AutoPostBack="true"
CssClass="TextBox"></asp:TextBox>
<asp:CalendarExtender ID="txtDateDG_CalendarExtender" runat="server"
Enabled="True" Format="dd/MM/yyyy" TargetControlID="txtDateDG">
</asp:CalendarExtender>
“con.charger”:我正在使用一个类,其中执行sqlCommande/sqlConnection/DataSet。我这样做是为了避免每次都输入所有的代码。
它给我这个错误“从字符串转换日期和/或时间时转换失败。”
我尝试了这个方法,但仍然显示错误
DateTime dD = convert.toDateTime(txtDateD.Text);
还有这个
dateTime dD = DateTime.ParseExact(dateString, "dd/MM/yyyy", null);
我的表中txtDateD的类型是Date,而不是DateTime您应该真正使用SQL参数,它将
DateTime
传递,而不是格式化的字符串
,最好让框架决定存储所需的格式
下面是一个使用SqlCommand
/SqlConnection
using (SqlConnection conn = new SqlConnection("connectionString"))
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = @"INSERT INTO Materiel VALUES (@textParam, @intParam, @dateParam, ...)";
// add parameters
cmd.Parameters.AddWithValue("@textParam", "blah blah");
cmd.Parameters.AddWithValue("@intParam", 12345);
cmd.Parameters.AddWithValue("@dateParam", DateTime.UtcNow);
...
try
{
conn.Open();
cmd.ExecuteNonQuery();
}
catch(SqlException e)
{
// do something with exception
}
}
什么是充电器?你在这里使用某种ORM吗?我编辑了这个问题,请阅读。请阅读有关SQL注入的内容。除上述内容外,你没有告诉我们你传入的无法转换的字符串值。我说我在txtDateD文本框上使用日历扩展器,因此,我正在从日历中选择一个日期。你能告诉我我是如何尝试的,但它给了我一个错误
cmd.CommandText=@“插入到装备值(@ST,@PL,@PG,@IDM,@IDT,@IDS,@IDEm,@REP,@IDEN,@DD,@DD)”;cmd.Parameters.AddWithValue(“@ST”,txtServiceTag.Text)代码>在我的表中,@ST是serviceTag,它的类型是Varchar(20),当我点击按钮时,它给了我这个错误,'123F'附近不正确的语法
using (SqlConnection conn = new SqlConnection("connectionString"))
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = @"INSERT INTO Materiel VALUES (@textParam, @intParam, @dateParam, ...)";
// add parameters
cmd.Parameters.AddWithValue("@textParam", "blah blah");
cmd.Parameters.AddWithValue("@intParam", 12345);
cmd.Parameters.AddWithValue("@dateParam", DateTime.UtcNow);
...
try
{
conn.Open();
cmd.ExecuteNonQuery();
}
catch(SqlException e)
{
// do something with exception
}
}