MVC 文件上传:对象必须实现 iConvertible
MVC File Upload: Object Must Implement iConvertible
我允许用户上传文件并为其命名。现在,我只是在数据库中添加一行,内容如下:
Username, DataSetID (GUID), DataSetName, TimeStamp
。
我遇到错误
"Object must implement IConvertible."
Guid unique = Guid.NewGuid();
var current = DateTime.Now;
string sql = "INSERT INTO datasets (userid, datasetid, datasetname, timestamp) VALUES (@userid, @datasetid, @datasetname, @timestamp);";
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
{
using (SqlCommand command = new SqlCommand(sql, con))
{
command.Parameters.Add("@userid", SqlDbType.Text);
command.Parameters["@userid"].Value = System.Web.HttpContext.Current.User.Identity.GetUserId();
command.Parameters.Add("@datasetid", SqlDbType.Text);
command.Parameters["@datasetid"].Value = unique;
command.Parameters.Add("@datasetname", SqlDbType.Text);
command.Parameters["@datasetname"].Value = datasetname.ToString();
command.Parameters.Add("@timestamp", SqlDbType.DateTime);
command.Parameters["@timestamp"].Value = current;
con.Open();
command.ExecuteNonQuery();
con.Close();
}
}
您不能将 Guid(代码中的unique
)隐式转换为字符串。
明确地这样做:
command.Parameters["@datasetid"].Value = unique.ToString();
应该修复它。
有关文档,请参阅 https://msdn.microsoft.com/en-us/library/system.guid(v=vs.110).aspx。如您所见,Guid
没有实现允许隐式转换的 IConvertible
接口。
我允许用户上传文件并为其命名。现在,我只是在数据库中添加一行,内容如下:
Username, DataSetID (GUID), DataSetName, TimeStamp
。
我遇到错误
"Object must implement IConvertible."
Guid unique = Guid.NewGuid();
var current = DateTime.Now;
string sql = "INSERT INTO datasets (userid, datasetid, datasetname, timestamp) VALUES (@userid, @datasetid, @datasetname, @timestamp);";
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
{
using (SqlCommand command = new SqlCommand(sql, con))
{
command.Parameters.Add("@userid", SqlDbType.Text);
command.Parameters["@userid"].Value = System.Web.HttpContext.Current.User.Identity.GetUserId();
command.Parameters.Add("@datasetid", SqlDbType.Text);
command.Parameters["@datasetid"].Value = unique;
command.Parameters.Add("@datasetname", SqlDbType.Text);
command.Parameters["@datasetname"].Value = datasetname.ToString();
command.Parameters.Add("@timestamp", SqlDbType.DateTime);
command.Parameters["@timestamp"].Value = current;
con.Open();
command.ExecuteNonQuery();
con.Close();
}
}
您不能将 Guid(代码中的unique
)隐式转换为字符串。
明确地这样做:
command.Parameters["@datasetid"].Value = unique.ToString();
应该修复它。
有关文档,请参阅 https://msdn.microsoft.com/en-us/library/system.guid(v=vs.110).aspx。如您所见,Guid
没有实现允许隐式转换的 IConvertible
接口。