我正在编写一个C#命令行工具来从AX获取数据并向AX添加数据(创建新表).
从AX表中获取数据很简单,并在此处记录:http://msdn.microsoft.com/en-us/library/cc197126.aspx
将数据添加到现有表格也很简单:http://msdn.microsoft.com/en-us/library/aa868997.aspx
但我无法弄清楚如何做两件事:
有人可以分享一些示例代码或指出从哪里开始寻找.我在谷歌和MSDN上的搜索没有透露太多.
注意:我不是经验丰富的AX或ERP开发人员.
我试图以文件/ id格式获取我的URL .我猜我的控制器中应该有两个Index方法,一个带参数,一个带不带.但我在下面的浏览器中收到此错误消息.
无论如何这里是我的控制器方法:
public ActionResult Index()
{
return Content("Index ");
}
public ActionResult Index(int id)
{
File file = fileRepository.GetFile(id);
if (file == null) return Content("Not Found");
else return Content(file.FileID.ToString());
}
Run Code Online (Sandbox Code Playgroud)
更新:完成添加路线.谢谢Jeff
c# model-view-controller asp.net-mvc controller asp.net-mvc-routing
一年前,我从经典的OO语言(如Java)转向JavaScript.Java中绝对不推荐使用以下代码(甚至不正确):
if(dayNumber = getClickedDayNumber(dayInfo))
{
alert("day number found : " + dayNumber);
}
function getClickedDayNumber(dayInfo)
{
dayNumber = dayInfo.indexOf("fc-day");
if(dayNumber != -1) //substring found
{
//normally any calendar month consists of "40" days, so this will definitely pick up its day number.
return parseInt(dayInfo.substring(dayNumber+6, dayNumber+8));
}
else return false;
}
Run Code Online (Sandbox Code Playgroud)
基本上我刚刚发现我可以在if条件语句中为一个值赋值,并立即检查赋值,就好像它是布尔值一样.
为了更安全的赌注,我通常将其分为两行代码,首先分配然后检查变量,但现在我发现了这一点,我只是想知道在经验丰富的JavaScript开发人员眼中这是否是一种好的做法?
我需要一些关于ADO.NET中由Visual Studio生成的强类型数据集的专家建议.这是详细信息.先感谢您.
我想编写一个N层应用程序,其中表示层是C#/ windows表单,Business Layer是Web服务,数据访问层是SQL db.
因此,我使用了Visual Studio 2005,并在解决方案中创建了3个项目.
项目1是数据访问层.在这里我使用visual studio数据集生成器来创建一个强类型数据集和表适配器(测试我在northwind的customers表上创建了它).数据集称为NorthWindDataSet,其中的表是CustomersTable.
project 2有一个Web服务,它只公开了一个GetCustomersDataSet方法.这使用project1库的表适配器来填充数据集并将其返回给调用者.为了能够使用NorthWindDataSet和表适配器,我添加了对项目1的引用.
project 3是一个win form app,它使用Web服务作为参考,并调用该服务来获取数据集.
在构建此应用程序的过程中,在PL中,我在项目1中添加了对上面生成的DataSet的引用,并在表单的加载中调用Web服务并将从Web服务接收的DataSet分配给此数据集.但我得到错误:
无法将类型'PL.WebServiceLayerReference.NorthwindDataSet'隐式转换为'BL.NorthwindDataSet'e:\ My Documents\Visual Studio 2008\Projects\DataSetWebServiceExample\PL\Form1.cs
两个数据集都相同,但因为我添加了来自不同位置的引用,我认为我得到了上述错误.
所以,我做的是我将项目1(定义数据集)的引用添加到项目3(UI)并使用Web服务获取DataSet并确定正确的类型,现在当项目3(其中)有web表单运行,我得到以下运行时异常.
System.InvalidOperationException:XML文档中存在错误(1,5058).---> System.Xml.Schema.XmlSchemaException:元素' http://tempuri.org/NorthwindDataSet.xsd:Customers '的多个定义导致内容模型变得模糊不清.必须形成内容模型,使得在元素信息项序列的验证期间,可以在不检查元素信息项序列的内容或属性的情况下,直接地,间接地或隐含地包含在其中依次用于尝试验证序列中的每个项目的粒子.该项目,并且没有关于序列其余部分中的项目的任何信息.
我认为这可能是因为一些交叉引用错误.
我的问题是,有没有办法以这样的方式使用visual studio生成的DataSet,我可以在所有层中使用相同的DataSet(供重用),但将Table Adapter逻辑分离到数据访问层,以便前端是通过Web服务从这一切中抽象出来?
如果我有手写代码,我会放弃数据集生成器给出的好处,如果稍后添加了列,我需要手动添加它等,所以我想尽可能多地使用visual studio向导.
我有一个复杂的WPF控件,它在OnRender中绘制了很多原语(它有点像地图).当它的一小部分发生变化时,我只想为受影响的元素重新发出渲染命令,而不是运行整个OnRender.虽然我对OnRender函数在调整大小或其他方面的性能很好,但它对于基于鼠标悬停的基元突出显示来说还不够快.
目前我知道如何强制屏幕更新的唯一方法是调用InvalidateVisual().无法发送脏的rect区域以使其无效.
WPF屏幕组成的最低粒度是UI元素吗?我是否需要将原始渲染渲染到中间目标中,然后使用InvalidateVisual()更新到屏幕?
嗨,我正在使用C,我有一个关于分配指针的问题.
struct foo
{
int _bar;
char * _car[SOME_NUMBER]; // this is meant to be an array of char * so that it can hold pointers to names of cars
}
int foofunc (void * arg)
{
int bar;
char * car[SOME_NUMBER];
struct foo * thing = (struct foo *) arg;
bar = thing->_bar; // this works fine
car = thing->_car; // this gives compiler errors of incompatible types in assignment
}
Run Code Online (Sandbox Code Playgroud)
car和_car有相同的声明,为什么我收到有关不兼容类型的错误?我的猜测是它与指针有关(因为它们是指向char*数组的指针,对吧?)但我不明白为什么这是一个问题.
当我宣布char * car;而不是char * …
所以,我现在有两种类型:
const unsigned char* unencrypted_data_char;
string unencrypted_data;
Run Code Online (Sandbox Code Playgroud)
我正在尝试执行从一个到另一个的简单数据转换(字符串 - > const unsigned char*)
结果,我有以下几点:
strcpy((unencrypted_data_char),(unencrypted_data.c_str()));
Run Code Online (Sandbox Code Playgroud)
但是,我收到错误:
error C2664: 'strcpy' : cannot convert parameter 1 from 'const unsigned char *' to 'char *'
Run Code Online (Sandbox Code Playgroud)
有什么建议?我认为使用reinterpret_cast会有所帮助,但它似乎没有什么区别.
我试图将正则表达式结果分配给bash脚本中的数组,但我不确定这是否可行,或者我是否完全错误.以下是我想要发生的事情,但我知道我的语法不正确:
indexes[4]=$(echo b5f1e7bfc2439c621353d1ce0629fb8b | grep -o '[a-f0-9]\{8\}')
Run Code Online (Sandbox Code Playgroud)
这样:
index[1]=b5f1e7bf
index[2]=c2439c62
index[3]=1353d1ce
index[4]=0629fb8b
Run Code Online (Sandbox Code Playgroud)
任何链接或建议都会很精彩:)