http://blog.sina.com.cn/xialxl[订阅]
个人资料
分类
    内容读取中…
访客
读取中...
博文

在用oledb连接读取Excel时,偶遇读上来的数据为null,但是在原来的xls文件中是有数值的。

之所以这样跟连接字符串有关系。

 

以下是我试验成功的连接字符串

 OleDbConnection  conn = new OleDbConnection('Provider=Microsoft.Jet.'+
                    'OLEDB.4.0;Extended Properties='Excel 8.0;IMEX=1';Data Source='' + sFileName+''');

 

其中IMEX的值的意义是:

IMEX=0---输出模式;
IMEX=1---输入模式;
IMEX=2----链接模式(完全更新能力)

这样问题基本解决.

顺便在介绍一个连接字符

委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的调用可以像其他任何方法一样,具有参数和返回值

委托具有以下特点:

  • 委托类似于 C++ 函数指针,但它们是类型安全的。

  • 委托允许将方法作为参数进行传递。

  • 委托可用于定义回调方法。

  • 委托可以链接在一起;例如,可以对一个事件调用多个方法。

  • 方法不必与委托签名完全匹配。

  • C# 2.0 版引入了 匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。C# 3.0 引入了 Lambda 表达式,利用它们可以更简练地编写内联代码块。匿名方法和 Lambda 表达式(在某些上下文中)都可编译为委托类型。这些功能统称为匿名函数。

“匿名方法”就是没有名称的方法。匿名方法通常用于将代码块作为委托参数进行传递。

 

“Lambda 表达式”是一个匿名函数,它可

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml' >
<head>
<title>菜单</title>
<script type='text/javascript'>
// mid为菜单的ID
// h是菜单的最小高度,如果为null表示自动的适应
// titleMinHeight 为菜单中的一个子项的最小高度
// contentMinHeight是菜单中子项中的内容的最小高度
// space是菜单中每个子项间的间距。
function setMenu(mid,defaultHeight,minHeight,contentMinHeight,space)
{
var menuBar = null;
var menuItems = new Array();
var count = 0;
var itemMinHeight = 25;
var itemContentMinHeight =30;
var currentContentBar =null;
var itemSpace = 2;
var defaultIndex = 0;
var menuHeight = 0;
var menuDefaultHeight =0;
var oldWindowHeight=0;
var timer =null;
//index是默认显示的菜单项的索引。
this.setBar=funct

javascript图片广告(2008-01-30 13:43)

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml' >
<head>
    <title>图片广告</title>
    <script type='text/javascript' language='javascript'> 
        ///contentId 广告图片所在层id
        ///pageId 广告导航栏层id
        ///adNameId广告的广告名称显示栏id
        ///selectPageClassName被选中的广告的导航栏样式。
        function circleImageAd(contentId,pageId,adNameId,selectPageClassName)
        {
            var thisPageItem = null;
&nb

javascript对联广告(2008-01-29 21:58)
 

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
 <title>无标题页</title>
 <script type='text/javascript' language='javascript'>
 function getMiddleTop(id)
 {

 var barId= document.getElementById(id);
 var height = barId.offsetHeight;
 var windowHeight = document.documentElement.clientHeight;
 var t = windowHeight-height;
 var top =0;
 if(t>0)
 {
 top = t/2;
 }
 return top;
 }

 function getCenterLeft(id)
 {

 var barId= document.getElementById(id);
 var width = barId.offsetWidth;
 var windowWidth = document.do

 

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<title>test</title>
 
<script type='text/jscript'>

//id是层的id
function setCenter(id)
{
    var bar = null;
    var barId =null;
    this.setBar=function()
    {
        barId= id;
        bar= document.getElementById(id);
        autoSet();
    }
    var autoSet= function()
    {
        bar.style.position='absolute';
        bar.style.top =

自定义Ajax(2008-01-15 22:45)
<!--Ajax测试例题,求两个数相加-->

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml' >
<head>
    <title>Ajax测试</title>
    <script type='text/javascript'>
        //url为调用服务器资源的URL
        //valueFunction自定义的函数名称,服务器响应后返回的值将传给次函数
        function ajax(verb,url,data,valueFunction)
        {
            var xmlHttp;
            var resoponseText='';
            var createXMLHtt

循环轮播文字广告(2008-01-10 21:01)
循环轮播文字广告

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
    <title>无标题页</title>

    <script type='text/javascript' >

//第一个参数'barId'是广告的层的id

//第二个参数'itemTagName'是每一个广告的标签名

//第二个参数'time'广告更新的时间单位毫秒默认为1000毫秒
    function circleAd(barId,itemTagName,time)
    {
        var adTimeout;

 

C#委托-Delegate-1(2007-12-21 09:52)

根据网址和规定好的正则表达式获取网页上的电话例子,此例子是通过线程实现的。因为,访问网站是很慢的,如果不开线程,程序将会出现“假死”的情况。如果开线程的话,就会出现数据不同步,所以这里用了委托来解决这个问题。此列子用了来种委托:一是事件,二是自定义委托。

 

下面是设计代码

namespace WinPhone
{
    partial class DelegateExample
    {
        /// <summary>
        /// 必需的设计器变量。
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// 清理所有正在使用的资源。
        /// <

C#委托-Delegate-2(2007-12-21 09:48)
 

Delegate委托例子

//主要代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using System.Net;
using System.Threading;
using System.IO;

namespace WinPhone
{
    delegate void FormatPhoneEvent(string phones);
   
    public partial class DelegateExample : Form
         
        string PhoneWebsite = '';
        string PhonePatten = '';
        public DelegateExample()