首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

.NET C#编程几个小问题。

2012-05-23 
.NET C#编程几个问题。。问题1:验证码程序public class ValidCode : IHttpHandler, IRequiresSessionState{/

.NET C#编程几个问题。。
问题1:
验证码程序
public class ValidCode : IHttpHandler, IRequiresSessionState
{
  /// <summary>
  /// 生成随机字符串
  /// </summary>
  /// <param name="num">随机字符的个数</param>
  /// <returns>返回随机产生的字符串</returns>
  private string GetValidCode(int num)
  {

  string strRandomCode = "AB1CDEF2GH3IJ4KL5MN6P7QR8ST9UVWXYZ"; //定义要随机抽取的字符串
  char[] chastr = strRandomCode.ToCharArray(); //将定义的字符串转成字符数组
  StringBuilder sbValidCode = new StringBuilder(); //定义StringBuilder对象用于存放验证码
  Random rd = new Random(); //随机函数,随机抽取字符
  for (int i = 0; i < num; i++)
  {
  //以strRandomCode的长度产生随机位置并截取该位置的字符添加到StringBuilder对象中
  sbValidCode.Append(strRandomCode.Substring(rd.Next(0, strRandomCode.Length), 1));
  }
  return sbValidCode.ToString();

  }

  public void ProcessRequest(HttpContext context)
  {
  string strValidCode = GetValidCode(5); // 产生5位随机字符
  context.Session["ValidCode"] = strValidCode; //将字符串保存到Session中,以便需要时进行验证
  Bitmap image = new Bitmap(120, 30); //定义宽120像素,高30像素的数据定义的图像对象
  Graphics g = Graphics.FromImage(image); //绘制图片
  try
  {

  Random random = new Random(); //生成随机对象
  g.Clear(Color.White); //清除图片背景色
  for (int i = 0; i < 25; i++) // 随机产生图片的背景噪线
  {
  int x1 = random.Next(image.Width);
  int x2 = random.Next(image.Width);
  int y1 = random.Next(image.Height);
  int y2 = random.Next(image.Height);
  g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
  }

  Font font = new System.Drawing.Font("新宋体", 20, (System.Drawing.FontStyle.Bold)); //设置图片字体风格
  LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 3, true);//设置画笔类型
  g.DrawString(strValidCode, font, brush, 5, 2); //绘制随机字符


  g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1); //绘制图片的前景噪点
  System.IO.MemoryStream ms = new System.IO.MemoryStream(); //建立存储区为内存的流
  image.Save(ms, ImageFormat.Gif); //将图像对象储存为内存流
  context.Response.ClearContent(); //清除当前缓冲区流中的所有内容
  context.Response.ContentType = "image/Gif"; //设置输出流的MIME类型
  context.Response.BinaryWrite(ms.ToArray()); //将内存流写入到输出流
  }
  finally
  {
  g.Dispose();
  image.Dispose();
  }
  }

  public bool IsReusable
  {
  get


  {
  return false;
  }
  }
}

程序调用
 protected void btnSubmit_Click(object sender, EventArgs e)
  {
  ......
  if (txtValidCode.Text.ToUpper().Equals(Session["ValidCode"].ToString().ToUpper()))
  .......

这步出错,时好时坏的。错误的时候提示未将对象引用设置到对象的实例。


问题2:如何保存一个数据,让其在其他网页上都可以调用?
个人使用Session,但是不知道怎么设置。


问题3:如何将SQL数据库中的文件显示到VS中的GirdView中。
更深入一个问题,如何显示需要显示的列,或者根据一个关键字,例如ID,显示数据中与其相关的数据。

[解决办法]
呃,晕菜,这些百度,谷歌都能搜到了,还要发帖子,学校肯定也都教叻,自己查查课本吧,汗
[解决办法]

探讨
呃,晕菜,这些百度,谷歌都能搜到了,还要发帖子,学校肯定也都教叻,自己查查课本吧,汗

[解决办法]
这代码如果是你写的,你应该学会调试。

如果是随便在网上找的,那没什么好说的,你学习人家的代码,应该挑一个写得好的学,把时间浪费在看懂一个垃圾代码上还不如再找一个好一点的代码。

热点排行