我尝试在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的基本原理.
谢谢!
Log.i("Test", "Hello, Log")
Timber.i("Hello, Timber")
Run Code Online (Sandbox Code Playgroud)
我可以在调试控制台和Logcat中看到Log.i日志,但在任何地方都看不到Timber日志。
I /测试:您好,日志
我正在以stagingDebug模式构建。(我有4个选项,生产调试和发布以及暂存调试和发布)
我想念的是什么?
我应该在哪里创建一个实例?哪种方式更好,为什么?
1)在构造函数中?
public class UserController : Controller
{
private UnitOfWork unitofwork;
public UserController(){
unitofwork = new UnitofWork();
}
public ActionResult DoStuff(){
...
Run Code Online (Sandbox Code Playgroud)
2)作为私人班级成员?
public class UserController : Controller
{
private UnitOfWork unitofwork = new UnitofWork();
public ActionResult DoStuff(){
...
Run Code Online (Sandbox Code Playgroud) public Bitmap CreateBarcode(string data)
{
data = "55536";
string barcodeData = "*" + data + "*";
Bitmap barcode = new Bitmap(1, 1);
Font threeOfNine = new Font("Free 3 of 9 Extended", 31, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
Font arial = new Font("Arial", 13,
System.Drawing.FontStyle.Regular,
System.Drawing.GraphicsUnit.Point);
Graphics graphics = Graphics.FromImage(barcode);
SizeF dataSize = graphics.MeasureString(barcodeData, threeOfNine);
dataSize.Height = 70;
barcode = new Bitmap(barcode, dataSize.ToSize());
graphics = Graphics.FromImage(barcode);
graphics.Clear(Color.White);
graphics.TextRenderingHint = TextRenderingHint.SingleBitPerPixel;
graphics.DrawString(barcodeData, threeOfNine, new SolidBrush(Color.Black), 0, 0);
graphics.DrawString(data, arial, new SolidBrush(Color.Black), 50, 40);
graphics.Flush();
threeOfNine.Dispose(); …Run Code Online (Sandbox Code Playgroud) 我的测试代码用于创建新用户(如果不存在).并使用FindByEmailAsync()方法检查用户是否存在.但它总是返回null,所以它创建了相同的许多用户.
public HomeController(
IUnitOfWork unitOfWork,
UserManager<User> userManager)
{
_unitOfWork = unitOfWork;
_userManager = userManager;
}
public async Task<IActionResult> Index()
{
var test = await _userManager.FindByEmailAsync("admin@admin.com");
if (test == null)
{
// Add the user
var newUser = new User
{
UserName = "mark",
Email = "admin@admin.com",
Created = DateTime.Now,
Updated = DateTime.Now
};
_unitOfWork.UserRepository.Insert(newUser);
_unitOfWork.Save();
// password is 'admin'
await _userManager.CreateAsync(newUser, "admin");
}
return View();
}
Run Code Online (Sandbox Code Playgroud)
这是我的startup.cs
public void ConfigureServices(IServiceCollection services)
{
// add Identity
services.AddIdentity<User, IdentityRole>(config =>
{
config.User.RequireUniqueEmail …Run Code Online (Sandbox Code Playgroud) 我正在使用Angular2和下划线,
import * as _ from 'underscore';
Run Code Online (Sandbox Code Playgroud)
我也想在Chrome控制台窗口中使用下划线库.即使我确实打破了代码的中间部分,并尝试使用,但我得到了"未定义"错误.
我可以在Chrome控制台窗口中使用下划线吗?怎么样?
我需要将一个回调方法链接到Observable链.
private testMethod(): Rx.Observable<any> {
const deferred = this.$q.defer();
let promise = deferred.promise;
this.$window.fileChooser.open((results: any) => {
deferred.resolve(results);
}, (error: any) => {
this.Logger.log(error);
});
return this.rx.Observable.fromPromise(promise)
.map((contentURI: string) => {
// need to link call-back method
this.$window.FilePath.resolveNativePath(contentURI, (absolutePath: any) => {
// need to pass absolutePath to next map method
return absolutePath;
});
})
.map((fileEntry: any) => {
let results = [];
results.push({
fileEntry,
mimeType: 'image/jpeg'
});
return results;
})
.catch(this.ExceptionService.observableCatcher('error'));
}
Run Code Online (Sandbox Code Playgroud)
从promise,我可以得到一个contentURI,我需要调用这个.$ window.FilePath.resolveNativePath方法,它正在使用回调.它应该返回下一个map方法的绝对路径.
如何在返回promise和解析map方法之间链接回调方法?
我正在使用 Android Studio 中的 Asset Studio 从包含文本的 SVG 文件创建矢量资产。
但是文字不见了,我只能看到图像。
这是SVG文件内容,
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-21895 -10897.906 36 30.996">
<defs>
<style>
.cls-1 {
fill: #e94b35;
}
.cls-2 {
fill: #891212;
}
.cls-3 {
fill: #fff;
font-size: 12px;
font-family: HelveticaNeue-Bold, Helvetica Neue;
font-weight: 700;
}
</style>
</defs>
<g id="label-new" transform="translate(-21896 -10967.906)">
<g id="id1" data-name="id 264" transform="translate(1 70)">
<rect id="id_278999" data-name="id 278999" class="cls-1" width="36" height="25"/>
</g>
<path id="id_61" data-name="id 61" class="cls-2" d="M6,0V4.33H0Z" transform="translate(1 100.996) rotate(-90)"/>
<text id="new" class="cls-3" transform="translate(7 85)"><tspan x="0" y="0">new</tspan></text>
</g>
</svg> …Run Code Online (Sandbox Code Playgroud) 为了在用户单击输入框时将焦点移到输入的末尾,我使用了这样的方法,
$(function() {
$('#test-input').on('click', function(evt) {
$target = $(evt.target);
var val = $target.val();
$target.val('').val(val);
});
}())Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="test" id="test-input" value="abcdefgh" />Run Code Online (Sandbox Code Playgroud)
但是,如果我将“点击”更改为“焦点”,则不起作用。
$(function() {
$('#test-input').on('focus', function(evt) {
$target = $(evt.target);
var val = $target.val();
$target.val('').val(val);
});
}())Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="test" id="test-input" value="abcdefgh" />Run Code Online (Sandbox Code Playgroud)
在这种情况下,onClick 和 onFocus 操作有何不同?
c# ×3
.net ×1
android ×1
angular ×1
asp.net ×1
asp.net-core ×1
asp.net-mvc ×1
barcode ×1
dataadapter ×1
extjs-mvc ×1
extjs4 ×1
extjs4.1 ×1
html ×1
javascript ×1
jquery ×1
rxjs ×1