我使用DataReader读取了我的数据库.
并且某些行没有fdate值.
因此,当我将null日期转换为DateTime时,会发生错误.
如何查看该字段是否为空?
AdsCommand cmd = conn.CreateCommand();
cmd.CommandText = "select name,fdate from abc";
AdsDataReader reader = cmd.ExecuteReader();
DateTime flsdate = (reader["fdate"].Equals(null))? Convert.ToDateTime(reader["fdate"]) : DateTime.Today;
Run Code Online (Sandbox Code Playgroud)
我尝试使用Equals,但它不起作用.
有谁知道如何检查null对象以避免转换错误?
谢谢!
<input type="button" value="Delete" onclick="deleteMember(@Model.ID, '@ViewBag.returnUrl')"/>
Run Code Online (Sandbox Code Playgroud)
该代码有4个错误,2个语法错误和2个Unterminated字符串常量.
我该怎么做才能解决这些错误?

我正在尝试使用 Android 生命周期,但我正在准备添加生命周期编译器依赖项。
这是模块 build.gradle,
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
android {
compileSdkVersion 25
buildToolsVersion "26.0.0"
dataBinding {
enabled = true
}
defaultConfig {
applicationId "com.example.jj.mvvm"
minSdkVersion 19
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
kapt 'com.android.databinding:compiler:2.3.3'
implementation "android.arch.lifecycle:runtime:1.0.0" …Run Code Online (Sandbox Code Playgroud) 
嗨〜,
我想将100%的高度设置为面板2.但我不知道该怎么做..
这是我的测试代码,
{
title : 'EAST',
region : 'east',
layout : 'vbox',
layoutConfig : {
align : 'stretch'
},
bodyStyle : 'border:1px solid blue',
width: 300,
items : [
new Ext.Panel({
title : 'Panel 1',
border : true,
layout : 'fit',
height : 250,
html : 'PANEL 1 AREA'
}),
new Ext.Panel({
title : 'Panel 2',
border : true,
bodyStyle : 'border:1px solid red',
layout : 'fit',
html : 'PANEL 2 AREA'
})
]
}
Run Code Online (Sandbox Code Playgroud)
我试过,autoHeight:true和height:'100%'到面板2但它不起作用.
谁知道,请帮帮我〜
谢谢〜!
我还需要返回包含成功值(true或false)的JSON数据,它也需要有结果消息.
所以我使用Dictionary来包含数据,但当它返回Jason数据时,它包含""(Quot).
JsonResult = new Dictionary<string, string>();
JsonResult.Add("Success", "False");
JsonResult.Add("Message", "Error Message");
return Json(JsonResult);
Run Code Online (Sandbox Code Playgroud)
它回来了,
{"Success":"False","Message":"Error Message"}
Run Code Online (Sandbox Code Playgroud)
但是我需要,
{Success:False,Message:"Error Message"} //with out "" (Quot)
Run Code Online (Sandbox Code Playgroud)
有人知道吗?
谢谢!
我想在浏览器关闭时使FormsAuthentication的cookie过期. (我希望它像PHP会话一样工作)
这是我的Auth代码,位于Model(非控制器)中.
型号/ Auth.cs
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
1,
model.UserId,
DateTime.Now,
DateTime.Now.AddDays(1),
true,
model.UserId +" "+reader["lastname"],
FormsAuthentication.FormsCookiePath);
string hash = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash);
if (ticket.IsPersistent)
{
cookie.Expires = ticket.Expiration;
}
HttpContext.Current.Response.Cookies.Add(cookie);
Run Code Online (Sandbox Code Playgroud)
Web.config文件
<authentication mode="Forms">
<forms name="user" timeout="60" loginUrl="~/Auth/login" path="/"></forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
Run Code Online (Sandbox Code Playgroud)
还有一个问题是,有2次设置cookie超时,
在票,
DateTime.Now.AddDays(1),
Run Code Online (Sandbox Code Playgroud)
并在Web.config文件中进行身份验证
<forms name="user" timeout="60" loginUrl="~/Auth/login" path="/"></forms>
Run Code Online (Sandbox Code Playgroud)
它们有多么不同,哪一个会对实际的过期cookie产生影响?
有人知道,请告诉我.
谢谢!
我正在尝试在ASP.net MVC5项目中使用(handlebar).hbs模板,但我无法加载.hbs文件.
它发生HTTP错误404.3 - 未找到
我像这样加载,
define [
'hbs!./index'
],
Run Code Online (Sandbox Code Playgroud)
我确认路径很好. (http://local_host:1460/Scripts/js/apps/index/index.hbs)
我是否需要在某处设置.hbs扩展名?
有人知道,请指教.
我尝试在C#.net中使用DataAdapter.我仍然不了解DataAdapter.
我阅读了很多关于DataAdapter和DataReader的文章和博客.
我了解DataAdapter会在需要时自动打开和关闭数据库.
但,
//conn.Open();
AdsDataAdapter da;
da = new AdsDataAdapter("Select * from Test", conn);
AdsCommandBuilder cb;
cb = new AdsCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds, "Test");
DataRow newrow = ds.Tables["Test"].NewRow();
newrow["Name"] = "How about";
ds.Tables["Test"].Rows.Add(newrow);
da.Update(ds, "Test");
Run Code Online (Sandbox Code Playgroud)
当我运行上面的代码时,我收到一条错误消息,提示"连接必须打开".
为什么适配器无法自动打开连接?
并且,我想使用insertCommand插入数据(对于此测试,我打开了连接).
da.InsertCommand = new AdsCommand("INSERT INTO test (NAME) values('Insert Test #1')", conn);
//da.InsertCommand.ExecuteNonQuery(); // it works
da.Update(ds,"Test"); //but it does not works.
Run Code Online (Sandbox Code Playgroud)
很多例子使用Adapter.Update(),但对我来说,它不起作用:(
没有错误,也没有插入.
并使用da.InsertCommand.ExecuteNonQuery(); 而不是Update(),它的工作原理.
我究竟做错了什么?
谢谢!
首先,我的问题是我想知道Ext.Define()和Ext.Create()之间有多么不同,我想知道如何以正确的方式使用它们.
我查看了我的代码和许多Extjs4 MVC教程,
我在Extjs4 MVC项目中发现了许多Ext.define()方法.
我理解Ext.define()方法创建一个对象(CLASS).
如果我只是需要一个面板,我不会对面板进行任何继承,也不会在初始化后重复使用面板.
然后,我想我需要使用Ext.create()而不是Ext.define().
所以,我试着改变我的代码@.@;
有鉴于此
Ext.Define("App.view.MyGrid",{
extend : 'Ext.grid.panel',
alias : 'widget.MyGrid',
initComponent : function(){
this.columns : [{ header: 'column' }];
this.store : Ext.create('Ext.data.ArrayStore', {})
}
});
Run Code Online (Sandbox Code Playgroud)
我改变了,
var myGrid = Ext.create('Ext.grid.Panel', {
layout: 'fit',
border: false,
columns: [{ header: 'column' }],
store: Ext.create('Ext.data.ArrayStore', {})
});
Run Code Online (Sandbox Code Playgroud)
更改代码后,我遇到了一个问题,我无法检索(grep)Controller中的面板,
在我之前这样做之前,
refs: [
{
ref: 'myGrid',
selector: '',
xtype: 'MyGrid', //view - alias
autoCreate: true
}
]
this.getMyGrid();
Run Code Online (Sandbox Code Playgroud)
但在更改后,我不知道如何在控制器中检索该面板.
在搜索网页以了解如何grep它时,我只是想知道' 我对Ext.define()和Ext.create()的理解是否正确?为什么许多人使用Ext.define()方法,即使他们不再使用而不是继承?"
请建议我理解Extjs的基本原理.
谢谢!
watchOn:此方法只是简单地将所有运算符的线程更改为更下游(https://medium.com/upday-devs/rxjava-subscribeon-vs-observeon-9af518ded53a)
调用API时,我想在IO线程上运行与服务器的通信,并想在mainThread上处理结果。
我在许多教程中都看到了下面的代码,毫无疑问,它是正确的。但是我的理解是相反的,所以我想知道我的误解。
requestInterface.callApi()
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe())
Run Code Online (Sandbox Code Playgroud)
watchOn(AndroidSchedulers.mainThread())
:observeOn将所有运算符的线程进一步向下游移动,但是在示例中,实际的调用API函数是否高于observeOn?
.subscribeOn(Schedulers.io())
:奇怪的部分,它需要在主线程上订阅,但是在IO线程上订阅?
请告诉我我误会什么?