asp.net 无法将类型“System.DateTime”隐式转换为“string”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net 无法将类型“System.DateTime”隐式转换为“string”相关的知识,希望对你有一定的参考价值。

编译器错误消息: CS0029: 无法将类型“System.DateTime”隐式转换为“string”

源错误:
行 22:
行 23: st_name = nst_name;
行 24: st_csrq = nst_csrq;
行 25: st_code = nst_code;
行 26:

类文件
public class c31

public c31()


public c31(string nst_name, DateTime nst_csrq, string nst_code)

st_name = nst_name;
st_csrq = nst_csrq;
st_code = nst_code;


public string st_name

get;
set;

public string st_csrq

get;
set;

public string st_code

get;
set;



实例
public partial class _3_1 : System.Web.UI.Page

protected void Page_Load(object sender, EventArgs e)

c31 new_1=new c31();
c31 new_2 = new c31("王同学","444545197606203999");
new_1.st_name = "李同学";
new_1.st_csrq = new DateTime(1977,3,22);
new_1.st_csrq.ToString;
new_1.st_code = "442251197703220658";
Response.Write("姓名:"+new_1.st_name.ToString+"<br/>");
Response.Write("出生日期"+new_1.st_csrq.ToString("yyyy-MM-dd"));



请问这是为什么啊 ?

亲:
MyModel1.EntireTime是DateTime类型this.txtEntireTime.Text.ToStirng()是String类型
这样子是类型不一致的。
MyModel1.EntireTime=Convert.toDateTime(this.txtEntireTime.Text.ToStirng());
要将this.txtEntireTime.Text.ToStirng()转换为为DateTime类型
但是前提要保证你的this.txtEntireTime.Text.ToStirng()要验证
参考技术A MyModel.EntireTime是SystemDateTime类型的,而右边ToString()之后是字符串,没法直接赋值。
你应该根据字符串中表示日期的格式编写将字符串转化为SystemDateTime的函数或方法。
参考技术B 你的构造函数
public c31(string nst_name, DateTime nst_csrq, string nst_code)

st_name = nst_name;
st_csrq = nst_csrq;
st_code = nst_code;


中直接把nst_csrq赋值给 st_csrq,然而
public string st_csrq

get;
set;

此字段是string型的,所以会错误,你可以这样写构造函数
public c31(string nst_name, DateTime nst_csrq, string nst_code)

st_name = nst_name;
st_csrq = nst_csrq.ToShortDateString();
st_code = nst_code;

本回答被提问者采纳
参考技术C 你可以试试这么写:
MyModel1.EntireTime=DateTime.Parse(this.txtEntireTime.Text.ToStirng());就是把txtEntireTime的Text的值强制转化为DateTime类型
参考技术D 不要用ToString("yyyy-MM-dd")
如果你要转成年-月-日形式的话应该是ToLongDateString();
如果你要转成月-日形式就是ToShotDateString();
年-月-日 时:分:秒 ToLongTimeString();
....
方法都有 其他的格式可以自己试

无法将“X”类型的对象转换为“X”类型 - ASP.NET

【中文标题】无法将“X”类型的对象转换为“X”类型 - ASP.NET【英文标题】:Unable to cast object of type 'X' to type 'X' - ASP.NET 【发布时间】:2010-10-05 10:52:14 【问题描述】:

我目前正在使用 Visual Studio 2008 中的 ASP.NET 网站项目,每次我更改用户控件的代码隐藏页面并浏览到使用用户控件的页面时,我都会收到以下错误:

无法转换类型的对象 'ASP.basepage_master' 键入 'ASP.basepage_master'。

我必须重建整个解决方案才能解决此错误。有没有其他人遇到过这个错误,他们知道如何解决吗?

【问题讨论】:

【参考方案1】:

删除您的临时 ASP.NET 文件(C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files 中的所有内容)可以让这种情况消失......一段时间。

【讨论】:

我必须停止 IIS 才能删除临时 ASP.NET 文件,从而解决此错误。 太棒了。很高兴它奏效了。 (我能投赞成票吗?【参考方案2】:

根据我的理解,这是有道理的。

您正在对代码隐藏进行更改。为了使这些更改生效,您需要构建该项目,以便可以将代码隐藏编译到该项目的 DLL 文件中。当您更改代码隐藏并且不构建项目时,您实际上拥有该页面的两个版本,而 ASP.Net 无法解析这两个版本。因此,当您编译该类时,所做的更改会被协调到 DLL 中。

【讨论】:

我使用的是网站项目模型,而不是visual studio中的web应用项目模型。 我仍然相信这个概念是一样的,除了构建到一个 dll 文件。 ASP.NET 仍然需要编译您的源文件,并且它使用它的缓存版本来运行您的站点,而不是您未编译的“工作”版本。 odetocode.com/Articles/417.aspx【参考方案3】:

如果我在本地工作站上停止并重新启动 IIS,我能够解决此问题。

【讨论】:

这行得通的可怕。如果在生产中发生这种情况怎么办? IIS 重置?【参考方案4】:

这篇博文很好地描述了这个问题:

http://professionalaspnet.com/archive/2007/04/09/Unable-to-cast-object-of-type-_2700_ASP.masterpage_5F00_master_2700_-to-type-_2700_ASP.masterpage_5F00_master_27002E00_.aspx

【讨论】:

【参考方案5】:

尤里卡啊!!明白了...这个有效...

当您拖放用户控件或通过LoadControl 方法加载它时,在其路径中使用“波浪号”。例如。 this.LoadControl("~/MyUserControl.ascx");

同样适用于放置在页面上的控件。将波浪号添加到 aspx 页面中用户控件的声明性路径。

我们可以将其称为 VS2005 中的错误,并在 VS 2008 中修复。

如果这不起作用或需要更多解释,请回复我。或者,不要忘记将此标记为答案。

【讨论】:

【参考方案6】:

我也遇到了同样的问题,我终于能够构建网站了。

我必须为 ASP.NET 项目创建另一个具有不同名称的母版页,将原始内容复制并粘贴到新的母版页中,使我的所有子窗体都继承自新母版页,然后删除旧母版页。

该网站现在将运行。我不知道调试器是如何感到困惑并开始使用不存在的缓存对象的。我尽一切努力让它释放缓存(删除C:\%USER%\AppData\LocalC:\Windows\Microsoft.NET 下的临时文件,重命名母版页,重命名主类,更改文件以强制它们重新加载,重建解决方案,添加web.config 选项&lt;compilation batch="false" debug="false"/&gt;),但删除母版页除外。

删除母版页为我解决了这个问题,但我不明白为什么我必须这样做。

这是我挣扎的线索:

https://forums.asp.net/t/2172428.aspx

【讨论】:

以上是关于asp.net 无法将类型“System.DateTime”隐式转换为“string”的主要内容,如果未能解决你的问题,请参考以下文章

从 ASP.NET 调用 Oracle 存储过程时,无法将“System.Int32[]”类型的对象转换为“System.IConvertible”类型

ASP.NET、Kendo UI、CS1660:无法将 lambda 表达式转换为类型“字符串”

asp.net 无法将类型“System.DateTime”隐式转换为“string”

ASP.NET Core Web API:尝试激活时无法解析服务类型

Asp.net core System.InvalidOperationException:无法跟踪实体类型x的实例

ASP.NET MVC 强类型部分视图,给出无法加载类型错误