| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 792 人关注过本帖
标题:[求助]把.NET转ASP?
只看楼主 加入收藏
威风八面
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-6-12
收藏
 问题点数:0 回复次数:9 
[求助]把.NET转ASP?

做不好就要失业了。请高手帮帮忙!

我所在的学校每个学生都有一个学号。是在入学时候按输入的学生ID=入学年份+学部+学号+性别;

下面是student表的结构。

id(int 4) sName(nvarchar 50) sNum(char 10) sDep(char 2) grade(char 2) sClass(char 1) sSex(char 10) InPutTime(datetime 8)
824 某某某 2001020580 02 09 2 2006-2-22

主要是要生成sNum(char 10)这个学生ID。原来已有了.NET的程序生成。现在希望能转为ASP的方式生成。


.Net的生成代码如下:
//生成学生ID号
protected string sId()
{
string sId;//学生ID号
string sIn;//入学日期
string sDeps;//学部
string sSexs;//学生性别
string sNum;//学生学号
int yearin;//临时存放入学日期
DateTime thisDate = DateTime.Now;
int year = (int)thisDate.Year;
int month = (int)thisDate.Month;
switch(sDep.SelectedValue)
{
case "01" :
yearin = year-Int32.Parse(sGrade.SelectedValue);
break;
default :
yearin = year-Int32.Parse(sGrade.SelectedValue)+4;
break;
}
//学生性别
switch(sSex.SelectedValue)
{
case "男" :
sSexs = "1";
break;
default :
sSexs = "0";
break;
}
month = month/9; //学校的学年是从九月份开始
yearin = yearin + month; //入学日期,如果当前时间是九月到十二月则加一
sIn = yearin.ToString();
sDeps = sDep.SelectedValue;//学部
sNum = sNum_Get();//返回函数得到学生学号
sId = sIn+sDeps+sNum+sSexs;//学生ID=入学年份+学部+学号+性别;
return sId;
}

//生成学生学号
protected string sNum_Get()
{
int sNumInt=0;//临时存放学号,再转换成string
string sNum;

string sql = "select substring(sNum,7,3) as [学号] from student where sDep='"+sDep.SelectedValue.ToString().Trim()+"' and grade='"+sGrade.SelectedValue.ToString().Trim()+"' order by [学号]";
DataSet studentDs = new DataSet();
studentDs = sqlLink.myDataSet(ref studentDs,sql);
int numCount = studentDs.Tables[0].Rows.Count;

//如果numCount为零则学号为1,否则开始计算学号
if(numCount!=0)
{

//后一数据与前一数据相差大于等于2的话可以插入一新的数据
for(int i=0;i<numCount-1;i++)
{
if(Convert.ToInt32(studentDs.Tables[0].Rows[i+1][0])-Convert.ToInt32(studentDs.Tables[0].Rows[i][0])>=2)
{
sNumInt = Convert.ToInt32(studentDs.Tables[0].Rows[i][0])+1;
break;
}
}

//当遍历之后找不到后一数据与前一数据相差大于等于2的数据,则sNumInt为最后一数据加1
if(sNumInt == 0)
{
sNumInt = Convert.ToInt32(studentDs.Tables[0].Rows[numCount-1][0])+1;
}
}
else
{
sNumInt = 1;
}
string sNumPre=null;//到目前为止生成的sNumInt的前面的"0"
sNum = sNumInt.ToString();
switch(sNum.Length)
{
case 1 :
sNumPre = "00";
break;
case 2 :
sNumPre = "0";
break;
default :
sNumPre = "";
break;
}

sNum = sNumPre+sNum;//最终生成的学号

return sNum;
}
}
}


请高手帮忙转成ASP的,不知道行不行。谢谢了。

搜索更多相关主题的帖子: NET ASP 
2006-06-12 11:11
小笨笨
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:1169
专家分:0
注 册:2006-4-17
收藏
得分:0 
你对asp的语法熟悉吗?如果熟悉的话,这应该很容易转啊。没有什么难的算法。

欢迎光临我的博客: http://smallfools.blog./default.html
2006-06-12 12:29
威风八面
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-6-12
收藏
得分:0 
不是很熟悉啊。。。所以要求助大家了。
2006-06-12 14:30
威风八面
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-6-12
收藏
得分:0 

请问这一段用asp怎么写???

DataSet studentDs = new DataSet();
studentDs = sqlLink.myDataSet(ref studentDs,sql);
int numCount = studentDs.Tables[0].Rows.Count;

//如果numCount为零则学号为1,否则开始计算学号
if(numCount!=0)
{

//后一数据与前一数据相差大于等于2的话可以插入一新的数据
for(int i=0;i<numCount-1;i++)
{
if(Convert.ToInt32(studentDs.Tables[0].Rows[i+1][0])-Convert.ToInt32(studentDs.Tables[0].Rows[i][0])>=2)
{
sNumInt = Convert.ToInt32(studentDs.Tables[0].Rows[i][0])+1;
break;
}
}

//当遍历之后找不到后一数据与前一数据相差大于等于2的数据,则sNumInt为最后一数据加1
if(sNumInt == 0)
{
sNumInt = Convert.ToInt32(studentDs.Tables[0].Rows[numCount-1][0])+1;
}
}
else
{
sNumInt = 1;
}
string sNumPre=null;//到目前为止生成的sNumInt的前面的"0"
sNum = sNumInt.ToString();

2006-06-13 16:57
小笨笨
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:1169
专家分:0
注 册:2006-4-17
收藏
得分:0 
我想,你去asp版问可能会更好,这里的人可能对asp都不太熟。我四五年没用过asp了,语法也忘得差不多了。

欢迎光临我的博客: http://smallfools.blog./default.html
2006-06-14 08:30
water123456
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:3208
专家分:5
注 册:2006-2-21
收藏
得分:0 
studentDs = sqlLink.myDataSet(ref studentDs,sql);是什么意思的?
我是再学习asp的,你能给我解释一下,你的.NET意思,可能我能帮助你转这一段代码.

让我们风风火火的过一生,别平平淡淡过一年。
2006-06-14 08:34
小笨笨
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:1169
专家分:0
注 册:2006-4-17
收藏
得分:0 
他的代码没有给全,sqlLink可能是个自定义的对象,从现有的代码看起来,意思应该是从数据库里用查出数据,并填充到一个DataSet里,相当于asp中的ADODB.RecordSet吧。

欢迎光临我的博客: http://smallfools.blog./default.html
2006-06-14 08:51
water123456
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:3208
专家分:5
注 册:2006-2-21
收藏
得分:0 
asp中的ADODB.RecordSet对象只想当于.NET中的DataView对象
DataSet对象想当本地数据库.这是我的个人看法.

让我们风风火火的过一生,别平平淡淡过一年。
2006-06-14 09:36
water123456
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:3208
专家分:5
注 册:2006-2-21
收藏
得分:0 
studentDs = sqlLink.myDataSet(ref studentDs,sql);
笨笨版主,不太明白,什么时候,用到ref呀,我在初学的时候,在书上老是见这个东东,可是后来,就没有用到,可以再给我解释一下吗?谢谢啦.

让我们风风火火的过一生,别平平淡淡过一年。
2006-06-14 09:39
威风八面
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-6-12
收藏
得分:0 

全部代码如下:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace cas
{
/// <summary>
/// student 的摘要说明。
/// </summary>
public class student : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.Label Label3;
protected System.Web.UI.WebControls.Label Label4;
protected System.Web.UI.HtmlControls.HtmlForm Form1;
protected System.Web.UI.WebControls.TextBox sName;
protected System.Web.UI.WebControls.DropDownList sGrade;
protected System.Web.UI.WebControls.TextBox sClass;
protected System.Web.UI.WebControls.DropDownList sDep;
protected System.Web.UI.WebControls.TextBox sBorn;
protected System.Web.UI.WebControls.DropDownList sSex;
protected System.Web.UI.WebControls.HyperLink HyperLink1;
protected System.Web.UI.WebControls.Button Button1;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(Session["username"]==null)
{
Response.Redirect("login.aspx");
}
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void Button1_Click(object sender, System.EventArgs e)
{
Button1.Enabled = false;
string insertSql = "insert into student(sName,sNum,sDep,grade,sClass,sSex,sBorn) values('"+sName.Text.ToString()+"','"+sId();
insertSql += "','"+sDep.SelectedItem.Value.ToString()+"','"+sGrade.SelectedItem.Value.ToString()+"','"+sClass.Text.ToString()+"','"+sSex.Selec-tedValue+"','"+sBorn.Text.ToString()+"')";
//Response.Write(insertSql);
sqlLink.cmdExcuteQuery(insertSql);
sqlLink.odcClose();
Response.Write("<script>alert('添加成功!');location.href('student.aspx')</script>");
//Response.Write(sNum_Get());
}

//生成学生ID号
protected string sId()
{
string sId;//学生ID号
string sIn;//入学日期
string sDeps;//学部
string sSexs;//学生性别
string sNum;//学生学号
int yearin;//临时存放入学日期
DateTime thisDate = DateTime.Now;
int year = (int)thisDate.Year;
int month = (int)thisDate.Month;
switch(sDep.SelectedValue)
{
case "01" :
yearin = year-Int32.Parse(sGrade.SelectedValue);
break;
default :
yearin = year-Int32.Parse(sGrade.SelectedValue)+4;
break;
}
//学生性别
switch(sSex.SelectedValue)
{
case "男" :
sSexs = "1";
break;
default :
sSexs = "0";
break;
}
month = month/9; //学校的学年是从九月份开始
yearin = yearin + month; //入学日期,如果当前时间是九月到十二月则加一
sIn = yearin.ToString();
sDeps = sDep.SelectedValue;//学部
sNum = sNum_Get();//返回函数得到学生学号
sId = sIn+sDeps+sNum+sSexs;//学生ID=入学年份+学部+学号+性别;
return sId;
}

//生成学生学号
protected string sNum_Get()
{
//string numSql = "select [学号] from [基本情况表] where [职业]='"+sDep.SelectedValue.ToString().Trim()+"' and [年级]='"+sGrade.SelectedValue.ToString().Trim()+"' order by [学号]";
int sNumInt=0;//临时存放学号,再转换成string
string sNum;


string sql = "select substring(sNum,7,3) as [学号] from student where sDep='"+sDep.SelectedValue.ToString().Trim()+"' and grade='"+sGrade.SelectedValue.ToString().Trim()+"' order by [学号]";
DataSet studentDs = new DataSet();
studentDs = sqlLink.myDataSet(ref studentDs,sql);
int numCount = studentDs.Tables[0].Rows.Count;

//如果numCount为零则学号为1,否则开始计算学号
if(numCount!=0)
{

//后一数据与前一数据相差大于等于2的话可以插入一新的数据
for(int i=0;i<numCount-1;i++)
{
if(Convert.ToInt32(studentDs.Tables[0].Rows[i+1][0])-Convert.ToInt32(studentDs.Tables[0].Rows[i][0])>=2)
{
sNumInt = Convert.ToInt32(studentDs.Tables[0].Rows[i][0])+1;
break;
}
}

//当遍历之后找不到后一数据与前一数据相差大于等于2的数据,则sNumInt为最后一数据加1
if(sNumInt == 0)
{
sNumInt = Convert.ToInt32(studentDs.Tables[0].Rows[numCount-1][0])+1;
}
}
else
{
sNumInt = 1;
}
string sNumPre=null;//到目前为止生成的sNumInt的前面的"0"
sNum = sNumInt.ToString();
switch(sNum.Length)
{
case 1 :
sNumPre = "00";
break;
case 2 :
sNumPre = "0";
break;
default :
sNumPre = "";
break;
}

sNum = sNumPre+sNum;//最终生成的学号

return sNum;
}
}
}

谢谢大家了。。

2006-06-14 11:12
快速回复:[求助]把.NET转ASP?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021422 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved