最新动易sitefactory 2.5.3.0/bizidea 2.5.3.0/政府版/学校版/企业版/专业版

2009年7月3日 admin 没有评论

最新动易sitefactory 2.5.3.0/bizidea 2.5.3.0/政府版/学校版/企业版/专业版.
需要的联系QQ:38-38-494或者旺旺:leonier,另有BizIdea专业版/企业版,版本号:2.5.3.0;
淘宝店铺地址:http://shop34054173.taobao.com/

SiteFactory 2.5 版发布后修复的BUG列表:
专业版
问答管理移动问题页面点击“取消”不能返回上一页。
问答积分管理中管理分类不完整。
问答回复设置为最佳答案时,不填写评论时无法设置成最佳答案。
问题类型左侧导航树右键选择排序出错。
在前台问答查看问题页面“当前位置导航”标签没有显示。
增加“批量增加用户问答积分”权限配置。
用户注册赠送问答积分没有记录到问答积分明细。
政府版
问答查看问题页面“当前位置导航”标签没有显示。
标签管理中“GOV_首页右侧指南”标签重复。
音乐中心的音乐播放页“当前位置导航”标签异常。
默认视频播放页模板头部标签和政府版的其他页面不一致。
前台的文章内容页中,点击“字体大小”出现JS错误。
统一申请号、查询号、查询码为查询码。
有部门录入权限才允许添加申请表到该部门。
学校版
前台会员中心信息管理页,信息分类选项卡显示错乱。
问卷调查预览时没有样式。
在后台添加的转向链接,在前台预览时出错。
默认音乐父栏目页模板的音乐不能播放和试听。
后台添加的留言在留言列表中不显示。
在处理科目名称与满分的值时,如果不选择科目时仍然会显示满分值。
前台查询按科目查询学生成绩时,多了一个空的考试项。
前台查询按考试查询学生成绩时出现异常错误。
学号、学生姓名等查询参数没有编码造成不能查询到结果问题。
前台成绩查询时非首页节点下找不到页面错误。
前台评论引用页面的导航路径多了一层根节点。
会员中心底部标签缺少版权声明链接。

分类: Web 标签: ,

美国和中国老师讲灰姑娘的故事(差距啊~体现得淋漓尽致)

2009年6月11日 admin 没有评论

如果辛黛瑞拉没有得到仙女的帮助,她是不可能去参加舞会的,是不是?
学生:是的!
老师:如果狗、老鼠都不愿意帮助她,她可能在最后的时刻成功地跑回家吗?
学生:不会,那样她就可以成功地吓到王子了。(全班再次大笑)
老师:虽然辛黛瑞拉有仙女帮助她,但是,光有仙女的帮助还不够。所以,孩子们,无论走到哪里,我们都是需要朋友的。我们的朋友不一定是仙女,但是,我们需要他们,我也希望你们有很多很多的朋友。下面,请你们想一想,如果辛黛瑞拉因为后妈不愿意她参加舞会就放弃了机会,她可能成为王子的新娘吗?
学生:不会!那样的话,她就不会到舞会上,不会被王子遇到,认识和爱上她了。
老师:对极了!如果辛黛瑞拉不想参加舞会,就是她的后妈没有阻止,甚至支持她去,也是没有用的,是谁决定她要去参加王子的舞会?
学生:她自己。
老师:所以,孩子们,就是辛黛瑞拉没有妈妈爱她,她的后妈不爱她,这也不能够让她不爱自己。就是因为她爱自己,她才可能去寻找自己希望得到的东西。如果你们当中 有人觉得没有人爱,或者像辛黛瑞拉一样有一个不爱她的后妈,你们要怎么样?
学生:要爱自己!
老师:对,没有一个人可以阻止你爱自己,如果你觉得别人不够爱你,你要加倍地爱自己;如果别人没有给你机会,你应该加倍地给自己机会;如果你们真的爱自己,就会为自己找到自己需要的东西,没有人可以阻止辛黛瑞拉参加王子的舞会,没有人可以阻止辛黛瑞拉当上王后,除了她自己。对不对?
学生:是的!!!
老师:最后一个问题,这个故事有什么不合理的地方?
学生:(过了好一会)午夜 12点以后所有的东西都要变回原样,可是,辛黛瑞拉的水晶鞋没有变回去。
老师:天哪,你们太棒了!你们看,就是伟大的作家也有出错的时候,所以,出错不是什么可怕的事情。我担保,如果你们当中谁将来要当作家,一定比这个作家更棒!你们相信吗? 孩子们欢呼雀跃。
此为美国一所普通小学的一堂阅读课。我们是几岁的时候才想到这些层面?
——小学老师教的,终身受用——

真实性不详~~~有点遗憾…

中国版
上课铃响,学生,老师进教室。
老师:今天上课,我们讲灰姑娘的故事。大家都预习了吗?
学生:这还要预习?老得掉渣了。
老师:灰姑娘?是格林童话还是安徒生童话?他的作者是谁?哪年出生?作者生平事迹如何?
学生:……书上不都写了吗?不会自己看啊?
老师:这故事的重大意义是什么?
学生:得,这肯定要考的了。
老师:好,开始讲课文。谁先给分个段,并说明一下这么分段的理由。
学生:前后各一段,中间一段,总分总…….
老师:开始讲课了,大家认真听讲。
学生:已经开始好久了 …. ………..
老师:说到这里,大家注意这句话。这句话是个比喻句,是明喻还是暗喻?作者为什么这么写?
学生: (n人开始睡觉 …. ……….. )
老师:大家注意这个词,我如果换成另外一个词,为什么不如作者的好?
学生:(又 n人开始睡觉 …. ……….. )
老师:大家有没有注意到,这段话如果和那段话位置换一换,行不行?为什么?
学生:我又不是你,我怎么会注意到啊? (又 n人开始睡觉…. )
老师:怎么这么多人睡觉啊?你们要知道,不好好上课就不能考好成绩,不能考好成绩就不能上大学,不能上大学就不能……你们要明白这些做人的道理。
PS:考上大学,就开始人渣般的生活。

分类: 其他 标签:

动易Sitefactory 学校版/政府版/专业版/企业版,版本号:2.5.2.0,附带模板

2009年6月6日 admin 没有评论

动易Sitefactory 学校版/政府版/专业版/企业版,版本号:2.5.2.0,附带模板,

网络第一时间下载,需要的联系QQ:38-38-494或者旺旺:leonier,另有BizIdea专业版/企业版,版本号:2.5.2.0;

淘宝店铺地址:http://shop34054173.taobao.com/

SiteFactory 标准版 SiteFactory 专业版 SiteFactory 政府版 SiteFactory 学校版 SiteFactory 企业版

分类: 其他 标签: ,

c#中高效的excel导入sqlserver的方法

2009年6月4日 admin 没有评论

将oledb读取的excel数据快速插入的sqlserver中,很多人通过循环来拼接sql,这样做不但容易出错而且效率低下,最好的办法是使用bcp,也就是System.Data.SqlClient.SqlBulkCopy 类来实现。不但速度快,而且代码简单,下面测试代码导入一个6万多条数据的sheet,包括读取(全部读取比较慢)在我的开发环境中只需要10秒左右,而真正的导入过程只需要4.5秒。

using System;
using System.Data;
using System.Windows.Forms;
using System.Data.OleDb;
namespace WindowsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
//测试,将excel中的sheet1导入到sqlserver中
string connString = “server=localhost;uid=sa;pwd=sqlgis;database=master”;
System.Windows.Forms.OpenFileDialog fd = new OpenFileDialog();
if (fd.ShowDialog() == DialogResult.OK)
{
TransferData(fd.FileName, “sheet1″, connString);
}
}

public void TransferData(string excelFile, string sheetName, string connectionString)
{
DataSet ds = new DataSet();
try
{
//获取全部数据
string strConn = “Provider=Microsoft.Jet.OLEDB.4.0;” + “Data Source=” + excelFile + “;” + “Extended Properties=Excel 8.0;”;
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
string strExcel = “”;
OleDbDataAdapter myCommand = null;
strExcel = string.Format(”select * from [{0}$]“, sheetName);
myCommand = new OleDbDataAdapter(strExcel, strConn);
myCommand.Fill(ds, sheetName);

//如果目标表不存在则创建
string strSql = string.Format(”if object_id('{0}') is null create table {0}(”, sheetName);
foreach (System.Data.DataColumn c in ds.Tables[0].Columns)
{
strSql += string.Format(”[{0}] varchar(255),”, c.ColumnName);
}
strSql = strSql.Trim(',') + “)”;

using (System.Data.SqlClient.SqlConnection sqlconn = new System.Data.SqlClient.SqlConnection(connectionString))
{
sqlconn.Open();
System.Data.SqlClient.SqlCommand command = sqlconn.CreateCommand();
command.CommandText = strSql;
command.ExecuteNonQuery();
sqlconn.Close();
}
//用bcp导入数据
using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(connectionString))
{
bcp.SqlRowsCopied += new System.Data.SqlClient.SqlRowsCopiedEventHandler(bcp_SqlRowsCopied);
bcp.BatchSize = 100;//每次传输的行数
bcp.NotifyAfter = 100;//进度提示的行数
bcp.DestinationTableName = sheetName;//目标表
bcp.WriteToServer(ds.Tables[0]);
}
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
}

}

//进度显示
void bcp_SqlRowsCopied(object sender, System.Data.SqlClient.SqlRowsCopiedEventArgs e)
{
this.Text = e.RowsCopied.ToString();
this.Update();
}

}
}
上面的TransferData基本可以直接使用,如果要考虑周全的话,可以用oledb来获取excel的表结构,并且加入ColumnMappings来设置对照字段,这样效果就完全可以做到和sqlserver的dts相同的效果了。

获取excel结构的方法可以参考作者先前的文章
http://blog.csdn.net/jinjazz/archive/2008/05/13/2441635.aspx

分类: C#/.Net 标签: ,

用C#代码来调用配置数据库连接配置界面

2009年6月3日 admin 没有评论

以前做Winform程序,居然专门做一个界面来配置连接字符串。今天无意中发现:竟然可以直接调用VS.net2005中的配置界面来处理。

使用方法也及其简便:

一、添加引用
C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\Microsoft.Data.ConnectionUI.Dialog.dll

二、引入名称空间
using Microsoft.Data.ConnectionUI;
比如说放在一个按钮的Click事件里:
private void button1_Click(object sender, EventArgs e)
{
DataConnectionDialog dlg = new DataConnectionDialog();
dlg.DataSources.Add(DataSource.SqlDataSource);
dlg.SelectedDataProvider = DataProvider.SqlDataProvider;
DataConnectionDialog.Show(dlg, this);
}
dlg.ConnectionString 这个就是返回的你的数据库连接
如:
DataConnectionDialog dlg = new DataConnectionDialog();
dlg.DataSources.Add(DataSource.SqlDataSource);
dlg.SelectedDataProvider = DataProvider.SqlDataProvider;
if (DataConnectionDialog.Show(dlg, this) == DialogResult.OK)
{
MessageBox.Show(dlg.ConnectionString);
}
怎么样。简单吧?

分类: C#/.Net 标签:

关于showModalDialog回传值参数的问题

2009年5月15日 admin 没有评论

如果在母视窗要用 window.showModalDialog() 来开启子视窗的话,
就不能在子视窗使用 window.opener 属性来存取母视窗 (文法很怪,但我不知道怎麽用文字描述比较好… )

我只想到下面这个解法,供大家参考看看。

首先,showModalDialog() 的用法如下 (from MSDN):

vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures])

由上得知这个 method 共有三个 input 参数,分别是 sURL, vArguments 与 sFeature,除了 sURL 为目标网页必须填写之外,后两个皆非必要参数。

我的想法是,您在母视窗要使用 showModalDialog() 来打开一个子视窗时,将准备接收值的物件 (myObj) 带进 vArguments,子视窗只要取出该物件即取得母视窗中 myObj 的参照
这样一来,您就可以直接对该物件进行操作,就跟您直接在母视窗中操作 myObj 是一样的。

唉,上面的叙述好像还是很难懂… 我附上两个 html 来举例好了…
请分别将两段程式存档,若档名不是 AA.htm 与 BB.htm 的话请自行修改相关名称。

这是母视窗 AA.htm

回传值:


接下来是子视窗 BB.htm

请输入资料:



程式流程就是,由 AA.htm 打开 BB.htm,操作者在 BB.htm 输入资料后按下送出键,该资料即显示在 AA.htm 中。
几个关键地方我都用注释标起来了,您可以加以修改符合您的需求。

分类: 其他 标签:

C# Winform换肤 For vs2005

2009年5月6日 admin 没有评论

C# Winform换肤 For vs2005

关于c# winform中的换肤技术,并不是了解很多,今天在网上看到一个简单的方法,只要一个控件和几个皮肤文件就可以,下面我把步骤贴出来与大家共享。

IrisSkin2控件(破解版,只限Microsoft Visual Studio 2005)和皮肤下载地址如下:
http://www.zixi.net/file/skin.rar
demo程序,含源文件。
http://www.zixi.net/file/skindemo.rar

下载控件后解压有一个IrisSkin2.dll和一个skin文件夹。
把IrisSkin2.dll添加到你的项目引用里;
接着在解决方案管理器里右击项目->添加->新建文件夹,文件夹名字:skin;
然后在skin文件夹上右键→添加→现有项,弹出文件选择框里找到解压出来的skin文件夹里所有*.ssk文件添加进去;

这时候就可以看到skin文件夹里已经出现了我们刚刚添加的*.ssk文件了,然后全部选择这些*.ssk文件,切换到属性栏,在属性栏里面可以看到“生成操作”一栏,默认选项是“无”,修改成“嵌入的资源”;

添加一个新建类SkinClass,把以下的代码复制进去,记得把命名空间改成你自己的;

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Data;

//Zixi命令空间,别忘了改成你自己的。
namespace Zixi
{
class SkinClass
{
public static Sunisoft.IrisSkin.SkinEngine se = null;
///


/// 增加换肤菜单
///

/// public static void AddSkinMenu(ToolStripMenuItem toolMenu)
{
DataSet skin = new DataSet();
try
{

skin.ReadXml(”skin.xml”, XmlReadMode.Auto);
}
catch
{

}
if (skin == null || skin.Tables.Count < 1)
{
skin = new DataSet();
skin.Tables.Add("skin");
skin.Tables["skin"].Columns.Add("style");
System.Data.DataRow dr = skin.Tables["skin"].NewRow();
dr[0] = "系统默认";
skin.Tables[0].Rows.Add(dr);
skin.WriteXml("skin.xml", XmlWriteMode.IgnoreSchema);
}
foreach (SkinType st in (SkinType[])System.Enum.GetValues(typeof(SkinType)))
{
toolMenu.DropDownItems.Add(new ToolStripMenuItem(st.ToString()));

toolMenu.DropDownItems[toolMenu.DropDownItems.Count - 1].Click += new EventHandler(frm_Main_Click);
if (st.ToString() == skin.Tables[0].Rows[0][0].ToString())
{
((ToolStripMenuItem)toolMenu.DropDownItems[toolMenu.DropDownItems.Count - 1]).Checked = true;
frm_Main_Click(toolMenu.DropDownItems[toolMenu.DropDownItems.Count - 1], null);

}

}

toolMenu.DropDownItems.Add(new ToolStripMenuItem("系统默认"));
toolMenu.DropDownItems[toolMenu.DropDownItems.Count - 1].Click += new EventHandler(frm_Main_Click);
if (skin.Tables[0].Rows[0][0].ToString() == "系统默认")
{
((ToolStripMenuItem)toolMenu.DropDownItems[toolMenu.DropDownItems.Count - 1]).Checked = true;
}
}
static void frm_Main_Click(object sender, EventArgs e)
{

for (int i = 0; i < ((ToolStripMenuItem)((ToolStripMenuItem)sender).OwnerItem).DropDownItems.Count; i++)
{
if (((ToolStripMenuItem)sender).Text == ((ToolStripMenuItem)((ToolStripMenuItem)sender).OwnerItem).DropDownItems[i].Text)
{
((ToolStripMenuItem)sender).CheckState = CheckState.Checked;
DataSet skin = new DataSet();
skin.Tables.Add("skin");
skin.Tables["skin"].Columns.Add("style");
System.Data.DataRow dr = skin.Tables["skin"].NewRow();
dr[0] = ((ToolStripMenuItem)((ToolStripMenuItem)sender).OwnerItem).DropDownItems[i].Text;
skin.Tables[0].Rows.Add(dr);
skin.WriteXml("skin.xml", XmlWriteMode.IgnoreSchema);

}
else
{
((ToolStripMenuItem)((ToolStripMenuItem)((ToolStripMenuItem)sender).OwnerItem).DropDownItems[i]).CheckState = CheckState.Unchecked;
}
}
if (((ToolStripMenuItem)sender).Text == "系统默认")
{
RemoveSkin();
DataSet skin = new DataSet();
skin.Tables.Add("skin");
skin.Tables["skin"].Columns.Add("style");
System.Data.DataRow dr = skin.Tables["skin"].NewRow();
dr[0] = "系统默认";
skin.Tables[0].Rows.Add(dr);
skin.WriteXml("skin.xml", XmlWriteMode.IgnoreSchema);
return;
}
foreach (SkinType st in (SkinType[])System.Enum.GetValues(typeof(SkinType)))
{
if (st.ToString() == ((ToolStripMenuItem)sender).Text)
{
ChangeSkin(st);
return;
}
}
}
///


/// 改变皮肤
///
/// public static void ChangeSkin(SkinType st)
{
System.Reflection.Assembly thisDll = System.Reflection.Assembly.GetExecutingAssembly();
if (se == null)
{
//Zixi是指命名空间,这里你可以换成你自己的。
se = new Sunisoft.IrisSkin.SkinEngine(Application.OpenForms[0], thisDll.GetManifestResourceStream(”Zixi.skin.” + st.ToString() + “.ssk”));
se.Active = true;
for (int i = 0; i < Application.OpenForms.Count; i++)
{
se.AddForm(Application.OpenForms[i]);
}

}
else
{
//Zixi是指命名空间,这里你可以换成你自己的。
se.SkinStream = thisDll.GetManifestResourceStream("Zixi.skin." + st.ToString() + ".ssk");
se.Active = true;
}
}
///


/// 移除皮肤
///
public static void RemoveSkin()
{
if (se == null)
{
return;
}
else
{
se.Active = false;
}
}
}
///
/// 换肤类型
///

public enum SkinType
{
Calmness,
DeepCyan,
Eighteen,
Emerald,
GlassBrown,
Longhorn,
MacOS,
Midsummer,
MP10,
MSN,
OneBlue,
Page,
RealOne,
Silver,
SportsBlack,
SteelBlack,
vista1,
Vista2,
Warm,
Wave,
XPSilver
}
}

然后在你的主窗体里面添加菜单项,随便建一个二级菜单,如:系统→换肤,然后在主窗体的Form_Load事件里添加代码:

private void Form1_Load(object sender, EventArgs e)
{
//“换肤ToolStripMenuItem” 是上面菜单里“换肤”菜单的这个ToolStripMenuItem的Name。
SkinClass.AddSkinMenu(换肤ToolStripMenuItem);
}

类里面的两个方法是主要换肤用的:
ChangeSkin方法:换肤
RemoveSkin方法:恢复系统默认皮肤
(转载注明出处:http://www.zixi.net/)

分类: C#/.Net 标签: , ,

c#实现字符串排序倒序的几种写法

2009年4月23日 admin 没有评论

最简洁就是linq的写法,推荐。

// string concatenation with for loop
public string ReverseA(string text)
{
char[] cArray = text.ToCharArray();
string reverse = String.Empty;
for (int i = cArray.Length - 1; i > -1; i–)
{
reverse += cArray[i];
}
return reverse;
}

// Array.Reverse function
public string ReverseB(string text)
{
char[] charArray = text.ToCharArray();
Array.Reverse(charArray);
return new string(charArray);
}

// push/pop Stack<>
public string ReverseC(string text)
{
Stack resultStack = new Stack();
foreach (char c in text)
{
resultStack.Push(c);
}

StringBuilder sb = new StringBuilder();
while (resultStack.Count > 0)
{
sb.Append(resultStack.Pop());
}
return sb.ToString();
}

// LINQ
public string ReverseD(string text)
{
return new string(text.ToCharArray().Reverse().ToArray());
}

// StringBuilder
public string ReverseE(string text)
{
char[] cArray = text.ToCharArray();
StringBuilder reverse = new StringBuilder();
for (int i = cArray.Length - 1; i > -1; i–)
{
reverse.Append(cArray[i]);
}
return reverse.ToString();
}

分类: C#/.Net 标签: ,

C# WinForm登录窗口原理代码

2009年4月19日 admin 没有评论

1,运行代码:

static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// Application.Run(new Form1());

LoginForm lg = new LoginForm();
if (lg.ShowDialog() == DialogResult.OK)
{
Application.Run(new Form1());//打开你指定的窗口
}

}

2, 登录窗口(LoginForm)中

在你完成密码验证代码后加上
this.DialogResult=DialogResult.OK;

=====================================

建议:

第一,最好把LoginForm窗口的FormBorderStyle属性改为:FixedDialog
这样,当LoginForm窗口有关闭按钮时,只需要设置该按钮属性DialogResult为:Cancel
而不需要在关闭按钮事件里面写上:this.close();

第二,设置LoginForm窗口的AcceptButton属性为登录按钮,CancelButton为关闭按钮,
这样,就可以用回车直接登录和用Esc键直接关闭。

第三,设置LoginForm窗口的MaximizeBox属性为:False

分类: C#/.Net 标签: ,

ISAPI_Rewrite设置独立多站点的关键权限问题

2009年4月15日 admin 没有评论

使用支持多站点的ISAPI_Rewrite Full
ISAPI_Rewrite所在目录IIS_WGP组的读写权限
还有就是给网站目露录下的httpd.ini也加上权限
还不行我也不知道了

分类: Web 标签: