已回答  从福彩12选5走势图到ODBC SQL服务器 的转换

阿尔蒂

新成员
已加入
2020年6月8日
留言内容
1
编程经验
Beginner
您好 ,

即时通讯在使用odbc将c#转换为datetime SQL服务器 以及将c#转换为time(7)sql server时遇到问题,这是我的代码:

C#:
command.CommandText = "INSERT INTO pointer (Nom_employe, Date_Heure , Matin, Midi, apresmidi, Soir) VALUES ( ? ,? , ? , ?, ?, ?);";

// command.Parameters.AddWithValue("datetime", date_heure);
// command.Parameters.AddWithValue("nom", nom_employe);
command.Parameters.Add("@Nom", OdbcType.VarChar).Value = nom_employe;
command.Parameters.Add("@Date", OdbcType.Date).Value = Convert.ToDateTime( date_heure);

if (matin == null)
{
    command.Parameters.Add("@Matin", OdbcType.Time).Value = null;
}
else
{
    command.Parameters.Add("@Matin", OdbcType.Time).Value = TimeSpan.Parse(matin);
}

if (midi == null)
{
    command.Parameters.Add("@Midi", OdbcType.Time).Value = null;
}
else
{
    command.Parameters.Add("@Midi", OdbcType.Time).Value = TimeSpan.Parse(midi);
}

if (Apresmidi == null)
{
    command.Parameters.Add("@Apresmidi", OdbcType.Time).Value = null;
}
else
{
    command.Parameters.Add("@Apresmidi", OdbcType.Time).Value = TimeSpan.Parse( Apresmidi);
}

if (Soir == null)
{
    command.Parameters.Add("@Soir", OdbcType.Time).Value = null;
}
else
{
    command.Parameters.Add("@Soir", OdbcType.Time).Value = TimeSpan.Parse(Soir);
}

这是我现在得到的错误:'ERROR [HYC00] [Microsoft] [ODBC SQL服务器 驱动程序]Fonctionnalitéoptionnelle nonimplémentée'

但是,在此之前,我在转换方面还有其他错误,并且无法解决,因此我认为问题仍然存在吗?

我可以帮忙吗?
 
由主持人最后编辑:

金西尼

福彩12选5走势图论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,501
地点
悉尼,澳大利亚
编程经验
10+
I'm not sure whether this is the only issue there but it's definitely AN issue. When using ADO.NET, you don't use the 福彩12选5走势图 null to represent a database 空值 . The reason for that is because it couldn't be used for value types back when ADO.NET was originally created. Microsoft included the DBNull class specifically for the representation of database 空值 它有一个 静态的 Value 该属性返回获取或设置数据库时使用的实例 空值 ,例如
C#:
command.Parameters.Add("@Apresmidi", OdbcType.Time).Value = Apresmidi == null
                                                                ? (object) DBNull.Value
                                                                : TimeSpan.Parse(Apresmidi);
 

金西尼

福彩12选5走势图论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,501
地点
悉尼,澳大利亚
编程经验
10+
By the way, if you are using a DSN or have some other reason that you must use ODBC then fair enough but, as a first choice, you ought to use SqlClient for SQL服务器 rather than Odbc.
 

羊皮

退休程序员
工作人员
已加入
2018年9月5日
留言内容
1,923
地点
英国
编程经验
10+
C#:
Parameters.AddWithValue("@date", DateTime.Now.ToString("dd-MM-yyyy"));
Works for me. Remove your white space @ Date_Heure , keep your code tight and clean. Code maid is good for that if you are sloppy.
 
最佳 底部