我正在为WinForms项目组装一个轻量级的MVP模式.一切都编译好,运行良好.但是,当我尝试在Visual Studio中以设计模式打开WinForm时,出现" 路径中的非法字符 "错误.我的WinForm使用泛型并从基类Form类继承.在WinForm中使用泛型是否有问题?
这是WinForm和基本Form类.
public partial class TapsForm : MvpForm<TapsPresenter, TapsFormModel>, ITapsView
{
public TapsForm()
{
InitializeComponent();
}
public TapsForm(TapsPresenter presenter)
:base(presenter)
{
InitializeComponent();
UpdateModel();
}
public IList<Taps> Taps
{
set { gridTaps.DataSource = value; }
}
private void UpdateModel()
{
Model.RideId = Int32.Parse(cboRide.Text);
Model.Latitude = Double.Parse(txtLatitude.Text);
Model.Longitude = Double.Parse(txtLongitude.Text);
}
}
Run Code Online (Sandbox Code Playgroud)
基本形式MvpForm:
public class MvpForm<TPresenter, TModel> : Form, IView
where TPresenter : class, IPresenter
where TModel : class, new()
{
private readonly TPresenter presenter;
private TModel model;
public …Run Code Online (Sandbox Code Playgroud) 我有一个SQL Server 2005,它有一个'链接服务器'到另一个SQL Server 2005.
当我在其中一个表上针对链接服务器运行简单查询时:
SELECT TOP 10 [Pat_Id]
FROM [Prod].[PIS].[dbo].[W_PATIENT]
Run Code Online (Sandbox Code Playgroud)
发生此错误:
Msg 8114, Level 16, State 8, Line 1
Error converting data type DBTYPE_DBTIMESTAMP to datetime.
Msg 8114, Level 16, State 8, Line 1
Error converting data type DBTYPE_DBTIMESTAMP to datetime.
Run Code Online (Sandbox Code Playgroud)
但是,当我使用OPENQUERY时,它可以工作:
SELECT * FROM OPENQUERY([Prod], 'SELECT TOP 10 [Pat_Id] FROM [PIS].[dbo].[W_PATIENT]')
Run Code Online (Sandbox Code Playgroud)
W_PATIENT表没有任何'TIMESTAMP'类型的字段.它有5个DATETIME字段.
还需要注意的是,我可以使用DATETIME值查询其他表而不会出现问题.问题集中在W_PATIENT表上.