我被要求在我的应用程序中创建导入功能.我得到一个excel工作表作为输入.工作表具有列标题,后跟数据.用户只想从他们的系统中选择一个xls文件,单击上传,该工具将删除数据库中的表并添加这些新数据.
我认为最好的方法是将数据放入一个数据表对象中,并将数据表插入行中的每一行逐行进入数据库.
我的问题是,有什么人可以给我代码打开excel文件,知道数据在文件中开始的行,并将数据导入到datable对象中?
我想写一个linq查询来做到这一点
Select id from selectedBrands
where name='Nick' or name='Matt'
Run Code Online (Sandbox Code Playgroud)
这个linq是正确的????
var brandsToNotShow=new[] {"Nick","Matt"};
model.Names=
(from s in selectedBrands
where brandsToNotShow.Any()
select s.Brand.name
).ToList();
Run Code Online (Sandbox Code Playgroud)
其中model.Names是List
我正在生成一个xml文件.我在文件中注意到它有一个我不想要的标签.我正在从xmlSerializer对象生成xml文件,它正在做什么是在我的对象上处理一个属性错误...我的对象上的proerty像这样lloks ...
public List<ProductVarient> Varients { get; set; }
Run Code Online (Sandbox Code Playgroud)
因此,当我序列化它时,我得到一个这样的结构
<Varients>
<ProductVarient>
<Name>Nick</Name>
......
Run Code Online (Sandbox Code Playgroud)
我想要的
<AnotherProp>
<Stuff>toys</Stuff>
</AnotherProp>
<ProductVarient>
<Name>Nick</Name>
</ProductVarient>
<ProductVarient>
<Name>Jeff</Name>
</ProductVarient>
....
Run Code Online (Sandbox Code Playgroud)
因此,我没有尝试解决xmlserializer,而是使用超级黑客并编写了此代码
string s = File.ReadAllText(path);
s.Replace("<Varients>", "");
s.Replace("</Varients>", "");
using (FileStream stream = new FileStream(path, FileMode.Create))
using (TextWriter writer = new StreamWriter(stream))
{
writer.WriteLine("");
writer.WriteLine(s);
}
Run Code Online (Sandbox Code Playgroud)
2个问题
- 我写的代码不会替换为"",它不会抛出异常,但它也不起作用,我不知道为什么? - 有一个快速更好的方法来完成我的问题.
我可以在firebug中看到我的锚标记的路径名的值,但是我很难访问它
<script type="text/javascript">
$(document).ready(function() {
$("a").click(function() {
alert("Hi");
$.ajax({
type: "POST",
url: "NickTracker.asmx/LogActivity",
contentType: "application/json; charset=utf-8",
data: "{'path': '" + attr('pathname') + "'}",
dataType: "json",
success: AjaxSucceeded,
error: AjaxFailed
});
});
});
function AjaxSucceeded(result) {
alert(result.d);
}
function AjaxFailed(result) {
alert(result.status + ' ' + result.statusText);
}
</script>
Run Code Online (Sandbox Code Playgroud)
这是我的HTML
<body>
<form id="form1" runat="server">
<div>
Page 1<br />
<br />
<a href="http://manual.aspdotnetstorefront.com/p-157-xml-packages.aspx">Manual</a>
<br />
<a href="http://www.google.com/">googles</a>
<br />
<br />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
</div>
</form>
</body>
Run Code Online (Sandbox Code Playgroud)
当用户点击我想要返回的路径时,这不是work-attr('pathname')
我一直在查看单元测试主题,老实说,我从未在实时应用程序中看到它.
我对这个主题有点模糊......一个简单的例子就是如果我用数据填充列表框,我会通过调试知道数据是否正在填充,如果不是,那么可能很容易找出原因.此外,如果它不起作用,我不可能把它投入生产,为什么我需要进行单元测试?我没有看到它的重点.
我有一个ID模式,标题,日期的表模式
和数据看起来像这样:
1 The title1 2011-04-05 00:00:00.000
2 Another title 2011-04-11 00:00:00.000
3 The title1 2011-04-11 16:49:23.633
4 The title1 2011-04-11 00:00:00.000
Run Code Online (Sandbox Code Playgroud)
我需要帮助sql给我每个标题的最新日期.所以上面数据的输出是
2 Another title 2011-04-11 00:00:00.000
3 The title1 2011-04-11 16:49:23.633
Run Code Online (Sandbox Code Playgroud) 我正在使用以下函数来尝试将对象序列化为XML ..
public static string SerializeObject<T>(T obj)
{
try
{
string xmlString = null;
MemoryStream memoryStream = new MemoryStream();
XmlSerializer xs = new XmlSerializer(typeof(T));
XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
xs.Serialize(xmlTextWriter, obj);
memoryStream = (MemoryStream)xmlTextWriter.BaseStream;
xmlString = UTF8ByteArrayToString(memoryStream.ToArray()); return xmlString;
}
catch (Exception ex)
{
return string.Empty;
}
}
Run Code Online (Sandbox Code Playgroud)
尝试序列化其中包含IList属性的对象时,我得到以下异常..
Cannot serialize member 'ObjectModel.Order.LineItems' of type 'System.Collections.Generic.IList
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我改变我的功能以适应这种情况吗?
有什么我可以做这个现有的代码来查看输入对象.如果它的Ilist类型将其更改为List?如果可能的话,somoeone可以帮我编写代码吗?
var hyp = document.createElement("a");
//hyp.style.cssText='cursor:pointer';
hyp.onclick="RemoveDv('" + divid + "');";
hyp.innerHTML = "Remove";
Run Code Online (Sandbox Code Playgroud)
我在那里有这个代码snippit的javascript.在Firefox中一切正常,但在IE8中,如果我在本地运行它可以正常工作,但是将代码上传到服务器并通过我在本地运行它的同一个IE8浏览器运行RemoveDv事件将不会触发.
这是从这个javascript创建的html
<a style="cursor: pointer;" onclick="RemoveDv('dv1');">
Run Code Online (Sandbox Code Playgroud) 验证日期的最佳方法是什么,如果输入格式在CCYYMMDD中作为字符串(即"20101210"),它实际上是一个日期?
如何将字符串格式CCYYMMDD(即20120624)的日期转换为MM/DD/YYYY(即06/24/2012)?
我正在尝试这个,但它没有解析,抛出异常jDate不是一个有效的日期时间格式
Public Shared Function ConvertJDateToDate(ByVal jDate As String) As String
Dim d As Date = Date.ParseExact("yyyyMMdd", jDate, CultureInfo.InvariantCulture)
Dim newText As String = d.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture)
Return newText
End Function
Run Code Online (Sandbox Code Playgroud) c# ×3
vb.net ×3
asp.net ×2
ado.net ×1
asp.net-mvc ×1
html ×1
javascript ×1
jquery ×1
linq ×1
sql ×1
sql-server ×1
t-sql ×1
xml ×1