windows下oracle手工创建和删除数据库

创建oracle_sid为feifei的数据库

1、设置oracle_sid:set oracle_sid=feifei
2、建立pfile文件:文件名为:initfeifei.ora
内容为:

feifei.__db_cache_size=79691776
feifei.__java_pool_size=4194304
feifei.__large_pool_size=4194304
feifei.__shared_pool_size=100663296
feifei.__streams_pool_size=12582912
audit_file_dest='C:\oracle\product\10.2.0/admin/feifei/adump'
background_dump_dest='C:\oracle\product\10.2.0/admin/feifei/bdump'
compatible='10.2.0.1.0'
control_files='C:\oracle\product\10.2.0\oradata\feifei\control01.ctl','C:\oracle\product\10.2.0\oradata\feifei\control02.ctl','C:\oracle\product\10.2.0\oradata\feifei\control03.ctl'
core_dump_dest='C:\oracle\product\10.2.0/admin/feifei/cdump'
db_block_size=8192
db_domain=''
db_file_multiblock_read_count=16
db_name='feifei'
db_recovery_file_dest='C:\oracle\product\10.2.0\flash_recovery_area'
db_recovery_file_dest_size=2147483648
dispatchers='(PROTOCOL=TCP) (SERVICE=feifeiXDB)'
job_queue_processes=10
log_archive_dest_1='location=C:\oracle\product\10.2.0\archive'
open_cursors=300
pga_aggregate_target=20971520
processes=150
remote_login_passwordfile='EXCLUSIVE'
resource_limit=TRUE
sga_target=209715200
sort_area_size=65536#test
undo_management='AUTO'
undo_tablespace='UNDOTBS1'
user_dump_dest='C:\oracle\product\10.2.0/admin/feifei/udump'
utl_file_dir='c:\temp'

note:如果不是很熟悉可以从其他数据库拷贝

3、建立pfile文件中的相关的文件夹
4、建立oracle服务进程,并创建oracle密码文件
oradim -new -sid %ORACLE_SID% -intpwd MYSECRETPASSWORD -startmode M
5、执行sqlplus /nolog和connect sys/MYSECRETPASSWORD as sysdba(conn / as sysdba)(两种不同的认证方式)
6、执行startup nomount命令
7、执行create database命令

create database feifei
 logfile   group 1 ('C:\oracle\product\10.2.0\oradata\feifei\redo1.log') size 10M,
 group 2 ('C:\oracle\product\10.2.0\oradata\feifei\redo2.log') size 10M,
 group 3 ('C:\oracle\product\10.2.0\oradata\feifei\redo3.log') size 10M
 character set          WE8ISO8859P1
 national character set utf8
 datafile 'C:\oracle\product\10.2.0\oradata\feifei\system.dbf'
 size 50M
 autoextend on
 next 10M maxsize unlimited
 extent management local
 sysaux datafile 'C:\oracle\product\10.2.0\oradata\feifei\sysaux.dbf'
 size 10M
 autoextend on
 next 10M
 maxsize unlimited
 undo tablespace UNDOTBS1
 datafile 'C:\oracle\product\10.2.0\oradata\feifei\undo.dbf'
 size 10M
 default temporary tablespace temp
 tempfile 'C:\oracle\product\10.2.0\oradata\feifei\temp.dbf'

note:可以把create database写在notepad中,然后通过@path执行
8、添加需要的表空间

create tablespace Usersdatafile  'C:\oracle\product\10.2.0\oradata\feifei\user01.dbf'
 size 50M
 autoextend on
 next 10M maxsize unlimited

9、执行相关的sql脚本,主要有:
C:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\catalog.sql(主要是数据字典)
C:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\catproc.sql(主要是pl/sql相关操作)
C:\oracle\product\10.2.0\db_1\sqlplus\admin\pupbld.sql(主要是sqlplus相关操作)
至此手工创建数据库基本完成,当然在生产系统中,创建数据库要比这个复杂的多,主要集中在创建的pfile文件和create database命令的复杂

删除oracle_sid=feifei数据库
1、注销掉windows服务的oracle进程oradim -delete -sid feifei
2、删除oracle创建的相关文件主要是:
1)C:\oracle\product\10.2.0\oradata\feifei下的文件
2)C:\oracle\product\10.2.0\admin\feifei下的文件
3)C:\oracle\product\10.2.0\db_1\database下文件名有feifei的文件

常见数据库对日期时间格式化

1、mysql

DATE_FORMAT(date,format)
根据format字符串格式化date值。下列修饰符可以被用在format字符串中:

%M  月名字(January……December)
%W  星期名字(Sunday……Saturday)
%D  有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)
%Y  年, 数字, 4 位
%y  年, 数字, 2 位
%a  缩写的星期名字(Sun……Sat)
%d  月份中的天数, 数字(00……31)
%e  月份中的天数, 数字(0……31)
%m  月, 数字(01……12)
%c  月, 数字(1……12)
%b  缩写的月份名字(Jan……Dec)
%j  一年中的天数(001……366)
%H  小时(00……23)
%k  小时(0……23)
%h  小时(01……12)
%I  小时(01……12)
%l  小时(1……12)
%i  分钟, 数字(00……59)
%r  时间,12 小时(hh:mm:ss [AP]M)
%T  时间,24 小时(hh:mm:ss)
%S  秒(00……59)
%s  秒(00……59)
%p  AM或PM
%w  一个星期中的天数(0=Sunday ……6=Saturday )
%U  星期(0……52), 这里星期天是星期的第一天
%u  星期(0……52), 这里星期一是星期的第一天
%%  一个文字“%”

2、sql server

sql server转换使用convert来实现


Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8 ): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
Select CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112): 20060516
Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130): 28 ????? 1431  3:26:31:180PM
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM

3、oracle

oracle转换日期或者时间用to_char(datetime, format)

format的参数有

HH     一天的小时数 (01-12)
HH12     一天的小时数 (01-12)
HH24     一天的小时数 (00-23)
MI     分钟 (00-59)
SS     秒 (00-59)
SSSS     午夜后的秒 (0-86399)
AM or A.M. or PM or P.M.     正午标识(大写)
am or a.m. or pm or p.m.     正午标识(小写)
Y,YYY     带逗号的年(4 和更多位)
YYYY     年(4和更多位)
YYY     年的后三位
YY     年的后两位
Y     年的最后一位
BC or B.C. or AD or A.D.     年标识(大写)
bc or b.c. or ad or a.d.     年标识(小写)
MONTH     全长大写月份名(9字符)
Month     全长混合大小写月份名(9字符)
month     全长小写月份名(9字符)
MON     大写缩写月份名(3字符)
Mon     缩写混合大小写月份名(3字符)
mon     小写缩写月份名(3字符)
MM     月份 (01-12)
DAY     全长大写日期名(9字符)
Day     全长混合大小写日期名(9字符)
day     全长小写日期名(9字符)
DY     缩写大写日期名(3字符)
Dy     缩写混合大小写日期名(3字符)
dy     缩写小写日期名(3字符)
DDD     一年里的日子(001-366)
DD     一个月里的日子(01-31)
D     一周里的日子(1-7;SUN=1)
W     一个月里的周数
WW     一年里的周数
CC     世纪(2 位)
J     Julian 日期(自公元前4712年1月1日来的日期)
Q     季度
RM     罗马数字的月份(I-XII;I=JAN)-大写
rm     罗马数字的月份(I-XII;I=JAN)-小写

精彩SQL语句

1、oracle求每月第一天和最后一天

SELECT Trunc(Trunc(SYSDATE, 'MONTH') - 1, 'MONTH') First_Day_Last_Month,
 Trunc(SYSDATE, 'MONTH') - 1 / 86400 Last_Day_Last_Month,
 Trunc(SYSDATE, 'MONTH') First_Day_Cur_Month,
 LAST_DAY(Trunc(SYSDATE, 'MONTH')) + 1 - 1 / 86400 Last_Day_Cur_Month
FROM dual;

2、sql server对日期的常规处理

SELECT REPLACE(CONVERT(varchar(10),GETDATE(),120),N'-0','-')  短日期格式:yyyy-m-d
SELECT STUFF(STUFF(CONVERT(char(8),GETDATE(),112),5,0,N'年'),8,0,N'月')+N'日'  长日期格式:yyyy年mm月dd日 --A. 方法1
SELECT DATENAME(Year,GETDATE())+N'年'+DATENAME(Month,GETDATE())+N'月'+DATENAME(Day,GETDATE())+N'日'   长日期格式:yyyy年mm月dd日 --A. 方法2
SELECT DATENAME(Year,GETDATE())+N'年'+CAST(DATEPART(Month,GETDATE()) AS varchar)+N'月 '+DATENAME(Day,GETDATE())+N'日'  短日期格式:yyyy年m月d日
SELECT CONVERT(char(11),GETDATE(),120)+CONVERT(char(12),GETDATE(),114)  完整日期+时间格式:yyyy-mm-dd hh:mi:ss:mmm
Select CONVERT(varchar(100), GETDATE(), 8 ): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16 

3、oracle中400w条记录的表中随机删除20条记录

--使用for
declare 
begin
     for c in (select * from (  select rowid rd from t2  order by dbms_random.value)m where rownum<=20) 
      loop
        delete from t2 where rowid=c.rd;
      end loop;
  commit;
end;
--不使用for
declare abc number;
arid rowid;
cursor cursor_sal is
 select * from (select rowid rd from t2  order by dbms_random.value)m where rownum<=20;
begin
      open cursor_sal;
      loop
        fetch cursor_sal into arid;
         exit when cursor_sal%notfound;
        delete from t2 where rowid=arid;
      end loop;
      close cursor_sal; 
  commit;
end;

网站流量统计

本程序采用.net平台和mysql数据库实现

mysql数据库中表:

CREATE TABLE `web_statistics` (
 `id` int(10) unsigned NOT NULL auto_increment,
 `Cur_url` varchar(500) NOT NULL,
 `Pre_url` varchar(500) NOT NULL default '未知',
 `Os` varchar(50) NOT NULL default '未知',
 `Ip` varchar(15) NOT NULL,
 `Browser` varchar(50) NOT NULL default '未知',
 `Access_Time` datetime NOT NULL,
 `Host_Name` varchar(45) NOT NULL default '未知',
 PRIMARY KEY  (`id`)
)

mysql存储过程:

CREATE  PROCEDURE `proc_statistics`(Cur_url varchar(500),Pre_url varchar(500),Os varchar(50),Brows varchar(50),Host_Name varchar(45),Ip varchar(15))
begin
insert into web_statistics(Cur_url,Pre_url,Os,Ip,Browser,Access_Time,Host_Name)
values(Cur_url,Pre_url,Os,Ip,Brows,now(),Host_Name);
end

ashx执行平台代码:

using System;
using System.Web;
using MySql.Data;
using MySql.Data.MySqlClient;
using MySql.Data.Types;
using System.Data;
public class Statistics : IHttpHandler {

 public void ProcessRequest (HttpContext context) {
 context.Response.ContentType = "image/jpg";
 string url_cur = "加载当前Url错误";
 string url_pre = "直接访问";
 if (context.Request.QueryString["d"] != null)
 {
 url_pre = System.Web.HttpContext.Current.Server.UrlDecode(context.Request.QueryString["d"].ToString()).Replace("`","&");
 if (url_pre == "")
 {
 url_pre = "直接访问";
 }
 }
 if (context.Request.QueryString["u"] != null)
 {
 url_cur = System.Web.HttpContext.Current.Server.UrlDecode(context.Request.QueryString["u"].ToString()).Replace("`", "&");
 }
 string[] data = GetData();
 string con_mysql = System.Configuration.ConfigurationManager.ConnectionStrings["mysql"].ToString();
 MySqlConnection conn;
 MySqlCommand cmd ;
 try
 {
 conn = new MySqlConnection(con_mysql);
 conn.Open();
 cmd = new MySqlCommand();
 cmd.Connection = conn;
 //存储过程实现

 cmd.CommandText = "proc_statistics";
 cmd.CommandType = CommandType.StoredProcedure;
 MySqlParameter para1 = new MySqlParameter("Cur_url", MySqlDbType.VarChar, 500);
 MySqlParameter para2 = new MySqlParameter("Pre_url", MySqlDbType.VarChar, 500);
 MySqlParameter para3 = new MySqlParameter("Os", MySqlDbType.VarChar, 50);
 MySqlParameter para4 = new MySqlParameter("Ip", MySqlDbType.VarChar, 15);
 MySqlParameter para5 = new MySqlParameter("Brows", MySqlDbType.VarChar, 50);
 MySqlParameter para7 = new MySqlParameter("Host_Name", MySqlDbType.VarChar, 45);
 para1.Value = url_cur;
 para2.Value = url_pre;
 para3.Value = data[1];
 para4.Value = data[3];
 para5.Value = data[2];
 para7.Value = data[0];
 cmd.Parameters.Add(para1);
 cmd.Parameters.Add(para2);
 cmd.Parameters.Add(para3);
 cmd.Parameters.Add(para4);
 cmd.Parameters.Add(para5);
 cmd.Parameters.Add(para7);

 //参数实现
 /*
 cmd.CommandType = CommandType.Text;
 //直接拼接字符串实现
 //string sql = "insert into web_statistics(Cur_url,Pre_url,Os,Ip,Browser,Access_Time,Host_Name)values('"+url_cur+"','"+url_pre+"','"+data[1]+"','"+data[3]+"','"+data[2]+"',now(),'"+data[0]+"')";
 //sql语句参数实现
 string sql = "insert into web_statistics(Cur_url,Pre_url,Os,Ip,Browser,Access_Time,Host_Name)values(?Cur_url,?Pre_url,?Os,?Ip,?Brows,now(),?Host_Name)";
 cmd.CommandText = sql;
 MySqlParameter para1 = new MySqlParameter("?Cur_url", MySqlDbType.VarChar,500);
 MySqlParameter para2 = new MySqlParameter("?Pre_url", MySqlDbType.VarChar, 500);
 MySqlParameter para3 = new MySqlParameter("?Os", MySqlDbType.VarChar, 50);
 MySqlParameter para4 = new MySqlParameter("?Ip", MySqlDbType.VarChar, 15);
 MySqlParameter para5 = new MySqlParameter("?Brows", MySqlDbType.VarChar, 50);
 MySqlParameter para7 = new MySqlParameter("?Host_Name", MySqlDbType.VarChar, 45);
 para1.Value = url_cur;
 para2.Value = url_pre;
 para3.Value = data[1];
 para4.Value = data[3];
 para5.Value=data[2];
 para7.Value = data[0];
 cmd.Parameters.Add(para1);
 cmd.Parameters.Add(para2);
 cmd.Parameters.Add(para3);
 cmd.Parameters.Add(para4);
 cmd.Parameters.Add(para5);
 cmd.Parameters.Add(para7);
 */

 cmd.ExecuteNonQuery();
 cmd.Dispose();
 conn.Close();
 }
 catch {}
 //输入图片
 string img_name = "statistics.jpg";
 //直接输出图片
 //  context.Response.WriteFile(context.Server.MapPath(img_name));

 //缓冲输出图片
 byte[] datas;
 if (HttpContext.Current.Cache["datacache"] != null)
 {
 datas = (byte[])HttpContext.Current.Cache["datacache"];
 }
 else
 {
 //记得修改文件图片名称
 datas = System.IO.File.ReadAllBytes(context.Server.MapPath(img_name));
 HttpContext.Current.Cache.Insert("datacache", datas, null, DateTime.MaxValue, TimeSpan.FromHours(12));
 }
 context.Response.OutputStream.Write(datas, 0, datas.Length);

 }

 public  string[] GetData()
 {
 string[] data = new string[4];
 string userAgent = System.Web.HttpContext.Current.Request.UserAgent == null ? "无" : System.Web.HttpContext.Current.Request.UserAgent;
 data[0] = System.Web.HttpContext.Current.Request.ServerVariables.Get("Remote_Host").ToString(); //主机名(暂时有问题)
 data[1] = System.Web.HttpContext.Current.Request.Browser.Platform.ToString() + ":" + GetOSNameByUserAgent(userAgent);//操作系统
 data[2] = System.Web.HttpContext.Current.Request.Browser.Browser.ToString() + ":" + System.Web.HttpContext.Current.Request.Browser.Version.ToString();//浏览器名称和版本
 string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
 if (null == result || result == String.Empty)
 {
 result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
 }
 if (null == result || result == String.Empty)
 {
 result = HttpContext.Current.Request.UserHostAddress;
 }
 data[3] = result;//ip地址
 return data;
 }
 private  string GetOSNameByUserAgent(string userAgent)
 {
 string osVersion = "未知";
 if (userAgent.Contains("NT 6.1"))
 {
 osVersion = "Windows 7/Server 2008 R2";
 }
 else if (userAgent.Contains("NT 5.2"))
 {
 osVersion = "Windows Server 2003";
 }
 else if (userAgent.Contains("NT 5.1"))
 {
 osVersion = "Windows XP";
 }
 else if (userAgent.Contains("NT 6.0"))
 {
 osVersion = "Windows Vista/Server 2008";
 }
 else if (userAgent.Contains("NT 5"))
 {
 osVersion = "Windows 2000";
 }
 else if (userAgent.Contains("Linux"))
 {
 osVersion = "Linux";
 }
 else if (userAgent.Contains("NT 4"))
 {
 osVersion = "Windows NT4";
 }
 else if (userAgent.Contains("Me"))
 {
 osVersion = "Windows Me";
 }
 else if (userAgent.Contains("98"))
 {
 osVersion = "Windows 98";
 }
 else if (userAgent.Contains("95"))
 {
 osVersion = "Windows 95";
 }
 else if (userAgent.Contains("Mac"))
 {
 osVersion = "Mac";
 }
 else if (userAgent.Contains("Unix"))
 {
 osVersion = "UNIX";
 }

 else if (userAgent.Contains("SunOS"))
 {
 osVersion = "SunOS";
 }
 return osVersion;
 }
 public bool IsReusable {
 get {
 return false;
 }
 }

}

实现调用:
因为我把本程序部署在dag.wzu.edu.cn域名的服务器上,所以可以直接通过html+js代码就可以实现客户端的访问统计功能

<img  style="width:0px;height:0px;border:0px" id="statistics_id_fei" /><script type="text/javascript"> window.onload = function () { document.getElementById("statistics_id_fei").src = "http://dag.wzu.edu.cn/statistics.ashx?d="+ encodeURI(document.referrer).replace('&', '`') + "&u=" + encodeURI(document.location.href).replace('&', '`') + "&x=" + Math.random(); }</script>

说明:

1、在执行文件ashx上,采用了多种可选方式,其中数据库方面有直接拼接sql,sql参数方法,存储过程调用三种方法;
2、为了能够是js中的onload事件能够执行,加载完ashx文件后,生成一个对应的图片文件,采用了直接加载cache缓存方式实现;
3、只要直接把这里的html和js代码复制到你网址的直接的任何地方就可以实现自己站点的访问量统计。

dropdownlist 省市县三级联动

因为开发环境是asp.net所以采用服务器端控件实现三级联动

HTML代码:


<asp:DropDownList ID="ddls" runat="server"></asp:DropDownList>

<asp:DropDownList ID="ddlc" runat="server"></asp:DropDownList>

<asp:DropDownList ID="ddlx" runat="server"></asp:DropDownList>

<input id="h_s" type="hidden"  runat="server"/>
 <input id="h_c" type="hidden" runat="server"/>
 <input id="h_a" type="hidden" runat="server"/>

note:hidden 是为了以后在c#代码中能够取到dropdownlist选中的值

js代码:

$(document).ready(function () {
 //选择省操作
 $("#ddls").change(function () {
 var selects_v = $("#ddls").val();
 $("#h_s").val(selects_v);
 if (selects_v == "0") {
 $("#ddlc option:first").attr("selected", "selected");
 $("#ddlx option:first").attr("selected", "selected");
 $("#ddlc").attr("disabled", "disabled");
 $("#ddlx").attr("disabled", "disabled");
 }
 else {
 $("#ddlc option").remove();
 $("#ddlc").attr("disabled", "");
 $("#ddlx option:first").attr("selected", "selected");
 $("#ddlx").attr("disabled", "disabled");
 $("#ddlc").append("<option value='0'>请选择市</option>");
 $.getJSON("./ashx/select_province.ashx?s=" + selects_v + "&a" + Math.random(), function (data) {
 $.each(data.root, function (id, item) {
 $("#ddlc").append("<option value='" + item.code + "'>" + item.name + "</option>");
 });
 });
 }
 });
 //ddlx选择市
 $("#ddlc").change(function () {
 var s_c = $("#ddlc").val();
 $("#h_c").val(s_c);
 if (s_c == "0") {
 $("#ddlx")[0].selectedIndex = 0;
 $("#ddlx").attr("disabled", "disabled");
 }
 else {
 $("#ddlx option").remove();
 $("#ddlx").attr("disabled", "");
 $("#ddlx").append("<option value='0'>请选择县</option>");
 $.getJSON("./ashx/select_city.ashx?s=" + s_c + "&a" + Math.random(), function (data) {
 $.each(data.root, function (id, item) {
 $("#ddlx").append("<option value='" + item.code + "'>" + item.name + "</option>");
 });
 });
 }
 });
 //选择对应的县
 $("#ddlx").change(function () {
 var s_a = $("#ddlx").val();
 $("#h_a").val(s_a);
 });
});

c#初始化dropdownlist数据

protected void Bindddls()
 {
 SqlDataReader dr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.StoredProcedure, "get_province");
 ddls.DataTextField = "name";
 ddls.DataValueField = "code";
 ddls.DataSource = dr;
 ddls.DataBind();
 dr.Close();
 ddls.Items.Insert(0,new ListItem("请选择省", "0"));
 }
 protected void Bindddlc()
 {
 string sValue = ddls.SelectedValue;
 if (sValue == "0")
 {
 ddlc.Items.Add(new ListItem("请选择市", "0"));
 ddlc.Enabled = false;
 }
 else
 {
 SqlDataReader dr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.StoredProcedure, "get_city");
 ddlc.DataTextField = "name";
 ddlc.DataValueField = "code";
 ddlc.DataSource = dr;
 ddlc.DataBind();
 dr.Close();
 ddlc.Items.Insert(0,new ListItem("请选择市", "0"));
 }
 }
 protected void Bindddla()
 {
 string cValue = ddlc.SelectedValue;
 if (cValue == "0")
 {
 ddlx.Items.Add(new ListItem("请选择县", "0"));
 ddlx.Enabled = false;
 }
 else
 {
 SqlDataReader dr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.StoredProcedure, "get_area");
 ddlx.DataTextField = "name";
 ddlx.DataValueField = "code";
 ddlx.DataSource = dr;
 ddlx.DataBind();
 dr.Close();
 ddlx.Items.Insert(0, new ListItem("请选择县", "0"));
 }
 }

ashx文件代码

select_province.ashx文件


if (HttpContext.Current.Request["s"] != null)
 {
 string sv = HttpContext.Current.Request["s"].ToString();
 SqlDataReader dr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.StoredProcedure
 , "get_city", new SqlParameter("@sid", sv));
 string json = Object_Json.ToJson(dr);
 dr.Close();
 HttpContext.Current.Response.Write(json);
 HttpContext.Current.Response.End();
 }
 else
 {
 HttpContext.Current.Response.Write("error");
 HttpContext.Current.Response.End();
 }

select_city.ashx文件

if (HttpContext.Current.Request["s"] != null)
 {
 string sv = HttpContext.Current.Request["s"].ToString();
 System.Data.SqlClient.SqlDataReader dr = xifenfei.mssql.SqlHelper.ExecuteReader(xifenfei.mssql.SqlHelper.ConnectionStringLocalTransaction, System.Data.CommandType.StoredProcedure
 , "get_area", new System.Data.SqlClient.SqlParameter("@sid", sv));
 string json = Object_Json.ToJson(dr);
 dr.Close();
 HttpContext.Current.Response.Write(json);
 HttpContext.Current.Response.End();
 }
 else
 {
 HttpContext.Current.Response.Write("error");
 HttpContext.Current.Response.End();
 }

效果: