我无法将DateTime插入我的数据库。我是否错误地写了这个陈述?
显然没有DateTime,我可以插入数据库
string dateAndTime = date + " " + time;
CultureInfo provider = CultureInfo.InvariantCulture;
DateTime theDateTime = DateTime.ParseExact(dateAndTime, "d MMMM yyyy hh:mm tt", provider);
//Create a connection, replace the data source name with the name of the SQL Anywhere Demo Database that you installed
SAConnection myConnection = new SAConnection("UserID=dba;Password=sql;DatabaseName=emaDB;ServerName=emaDB");
//open the connection
; myConnection.Open();
//Create a command object.
SACommand insertAccount = myConnection.CreateCommand();
//Specify a query.
insertAccount.CommandText = ("INSERT INTO [meetingMinutes] (title,location,perioddate,periodtime,attenders,agenda,accountID,facilitator,datetime) VALUES ('"+title+"','" + location + "', '" + date + "','" + time + "', '" + attender + "','" + agenda + "', '" + accountID + "','" + facilitator + "','" +theDateTime+ "')");
try
{
insertAccount.ExecuteNonQuery();
if (title == "" || agenda == "")
{
btnSubmit.Attributes.Add("onclick", "displayIfSuccessfulInsert();");
//ScriptManager.RegisterStartupScript(this, GetType(), "error", "alert('Please ensure to have a title or agenda!');", true);
}
else
{
btnSubmit.Attributes.Add("onclick", "displayIfSuccessfulInsert();");
Response.Redirect("HomePage.aspx");
//ScriptManager.RegisterStartupScript(this, this.GetType(), "Redit", "alert('Minutes Created!'); window.location='" + Request.ApplicationPath + "/HomePage.aspx';", true);
}
}
catch (Exception exception)
{
Console.WriteLine(exception);
}
finally
{
myConnection.Close();
}
它不会将SQL插入我的数据库。
PS:theDateTime例如,可能是7/14/2012 1:35:00 AM的值。如何将其插入数据库??
答案 0 :(得分:2)
是的,您应该使用参数{0},{1}等编写查询,然后使用 Parameters.Add 。
insertAccount.CommandText = ("INSERT INTO [meetingMinutes]
(title,location,perioddate,periodtime, ...)
VALUES (?,?,?,?, ... )");
insertAccount.Parameters.Add( ... );
这将确保使用正确的语法形成SQL;并且还可以防止SQL注入攻击。
答案 1 :(得分:1)
首先,永远不要对SQL查询或命令使用字符串连接。使用参数。 如果您将使用参数:
并且还要交叉检查您的数据库列是否具有datetime2类型,否则很可能您将无法存储小于1758年1月1日的值(例如DateTime.MinValue)。
答案 2 :(得分:0)
请勿使用日期的引号,删除使用日期的所有引号
change ,'" +theDateTime+ "') to ," +theDateTime+ ")
并且还保护yr sql导致它无法用于SQL注入