在 SQL 服务器中浮动到双倍

Float to Double in SQL Server

我在 SQL 服务器中有一个 float 类型的列 Probability 而我在 C# 中有一些计算如下:

var _Total_Records = 0;
var _Matchings = 0;
var _Probability = 0.0;

_Matchings = Convert.ToInt32(_myCommand_2.ExecuteScalar());
_Probability = Convert.ToDouble(_Matchings.ToString()) / Convert.ToDouble(_Total_Records);  

现在我想将这个 _Probability 值写入 SQL 服务器 table,而在 WriteToDatabase() 方法中,即

public static void Write_To_Database(int _id, int _Matched, double _Prob)
{
     var _Result = 0;
     SqlConnection _con = _cs.GetConnection();
     try
     {
         string _myUpdate_Command_1 = @"UPDATE AuthorCoAuthorProbability 
                                        SET Matched_Records = @_Matched_Records
                                        Probability = @_Probability
                                        WHERE id = @_id";

         SqlCommand _myUpdate_Command = new SqlCommand(_myUpdate_Command_1, _con);
         _myUpdate_Command.Parameters.AddWithValue("@_id", _id);
         _myUpdate_Command.Parameters.AddWithValue("@_Matched_Records", _Matched);
         _myUpdate_Command.Parameters.AddWithValue("@_Probability", _Prob);

         _Result = _myUpdate_Command.ExecuteNonQuery();

         _cs.Dispose();
      }
      catch (Exception e)
      {
          Console.WriteLine(e.Message);
      }
}

_Result =_myUpdate_Command.ExecuteNonQuery(); 命令:

我遇到了异常,即

Incorrect syntax near `Probability`  

是否存在数据类型错误?由于 SQL Server table 中的列数据类型是 float 并且我在其中存储 double_Probability 或者由于其他原因例外?

您的 SQL 声明中缺少一个逗号

替换

SET Matched_Records = @_Matched_Records Probability = @_Probability

SET Matched_Records = @_Matched_Records, Probability = @_Probability