如何从C#代码设置GUID字段
InsertParameters中有一个参数。当我试图设置它时,我得到一个错误:: 不允许从数据类型sql_variant隐式转换为uniqueidentifier。使用CONVERT函数运行此查询 这是我的c语言代码:如何从C#代码设置GUID字段,c#,asp.net,ado.net,guid,sqldatasource,C#,Asp.net,Ado.net,Guid,Sqldatasource,InsertParameters中有一个参数。当我试图设置它时,我得到一个错误:: 不允许从数据类型sql_variant隐式转换为uniqueidentifier。使用CONVERT函数运行此查询 这是我的c语言代码: 有人能帮忙吗?您需要更改插入上的SqlDbType: protected void SqlDataSource1_Inserting(object sender, SqlDataSourceCommandEventArgs e) { SqlParameter i
有人能帮忙吗?您需要更改
插入上的SqlDbType
:
protected void SqlDataSource1_Inserting(object sender,
SqlDataSourceCommandEventArgs e) {
SqlParameter insertedKey =
e.Command.Parameters["@PKComplexID"] as SqlParameter;
insertedKey.SqlDbType = SqlDbType.UniqueIdentifier;
}
参考资料
:
对象的唯一标识符字段的类型不正确。但不幸的是
VisualStudio designer中没有唯一标识符。所以
给你类型对象。也不能使其成为唯一标识符
给你一个例外。因此,您必须更改此参数类型表单
数据源_插入事件中的代码隐藏文件。确保它是插入的
事件在那里,您可以获取任何参数并设置uniqueidentifier
字段类型为uniqueidentifier
我还没有尝试过,但我的第一反应是:
Guid complexID = Guid.NewGuid();
SqlDataSource1.InsertParameters["PKComplexID"].DefaultValue = complexID;
您不应该转换为字符串。按如下方式修复代码:
Guid complexID = Guid.NewGuid();
我刚刚将参数类型从object更改为string。问题解决了。试试这个
string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
Guid id=Guid.NewGuid();
FileUpload1.SaveAs(Server>MapPath("Your Path"+id+fileName ));
try:SqlDataSource1.InsertParameters[“pkcompleId”].DefaultValue=Guid.NewGuid();谢谢,错过了,修好了:)
string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
Guid id=Guid.NewGuid();
FileUpload1.SaveAs(Server>MapPath("Your Path"+id+fileName ));