如何从C#代码设置GUID字段

如何从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

InsertParameters中有一个参数。当我试图设置它时,我得到一个错误::

不允许从数据类型sql_variant隐式转换为uniqueidentifier。使用CONVERT函数运行此查询

这是我的c语言代码:


有人能帮忙吗?

您需要更改
插入
上的
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 ));