泡脚是比较有讲究的,大家千万不要以为泡脚就是拿个盆子倒上些热水就算泡脚了,泡脚要泡到出汗身体出汗的,30分钟不出汗还要加中药。水要不断的加热才行。见下面的文章。
秋冬养生 泡j脚泡出你的精气神
Archive for 十一月, 2009
秋冬养生 泡脚泡出你的精气神
十一 26
冬季养生菜
十一 26
羊肉萝卜汤
羊肉500克切块,萝卜500克切块,草果两个(去皮),甘草3克,生姜5片,同放锅内煮汤,汤煲好后加少量食盐调味食用。有补中健胃,益肾壮阳作用。适用于病后体虚,腰疼怕冷,食欲不振等症。
枸杞炖羊肉
羊肉1斤,先放入沸水中煮透,捞出切成小方块,与生姜片一起倒入热油锅内煸炒,放入料酒,然后倒入砂锅内,放入枸杞20克,清汤2斤,香葱、食盐适量,用小火炖烂。最后加味精调味食用。
羊肉粥
取鲜羊肉100克,粳米100克,盐、葱、姜适量。羊肉洗净切片,葱、姜切成碎块备用。将粳米淘洗干净,同羊肉及调味品一同放入锅内,加清水适量,先用大火煮沸,再用文火熬成粥。本粥具有益气血、暖脾胃、添精补髓的作用,适于阳气不足、气血亏损、腰膝酸软者服用。
橄榄雪梨炖瘦肉
橄榄15克、雪梨50克、瘦肉100克、蜜枣1个。将瘦肉洗净,沸水略煮后切块,雪梨洗净切片再与洗净的橄榄、蜜枣放入炖盅内加清水250毫升,炖两小时即可。此款菜品利咽生津,滋阴润燥。
姜汁甜牛奶
取150-200毫升鲜牛奶,加入一调羹生姜汁和少许白糖,放入容器内隔水蒸十五分钟。此款饮品有驱寒合胃之功效,天天饮用一杯,手脚寒气便会渐失。
生煎猪肝
新鲜猪肝一斤,洗净后,斜刀切成稍大块点的薄片;用盐、料酒、姜丝、胡椒粉、生抽、味精和少许生粉将猪肝腌一下(如喜欢五香味的可放些五香粉);煎锅烧热放少许油,将猪肝摊在锅内煎黄一面后翻另一面;待两面煎黄,放些蒜蓉、葱丝、少许酱油后拌匀,即可出锅装盘。此菜富含维生素A,可缓解因畏寒而产生的腹痛症状。
海带豆腐
海带结半斤、北豆腐一盒,姜片、葱丝、盐、鸡精适量。海带结洗净备用,豆腐切成3厘米见方的块;加油适量,五成油温时,放入姜片、葱丝爆香;加入豆腐,放盐;约1分钟煎至微黄,翻炒;放入海带,翻炒大约一分钟;加水,漫过主料1厘米,加入鸡精;继续大火烧,大约8分钟,剩少许汤,即可出锅。此菜含钙丰富,利于心肌。
杞精炖鹌鹑
原料:鹌鹑 1只, 枸杞子、黄精各30克,盐、味精少许。
制作:将鹌鹑宰杀,去毛及内脏,冼净,枸杞、黄精装鹌鹑腹内,加水适量,文火炖酥,加盐、味精适量调味即成。
服法:弃药,吃肉喝汤,每日 1次。
功效:滋养肝肾,补精益智。鹌鹑是良好的益智食品,含有丰富蛋白质、无机盐、维生素等,有助于小儿发育、增进食欲、提高记忆力。脑力劳动者常食,能消除眩晕健忘症状,能提高智力,有健脑养神之作用;枸杞子能补肾益精、养肝明目、抗疲劳、增强体力和智力;黄精能补脾润肺、养阴生津、强化筋骨、益智强身。几味同用更增加其滋补和益智作用。适宜于肝肾不足、精血亏虚而见神疲乏力、腰膝酸软、眩晕健忘者服食。
在上一篇中介绍了如何使用odp.net代替ado.net,不过demo程序是C/S的,今天写一个B/S的,主要是获取翻页存储过程的数据和行数。
首先,在Web.Config中配置数据库连接字串,具体企业库怎么配置连接字串这里就不介绍了。代码如下:
<add name="OracleSource" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.88)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)));User Id=sys;Password=123;" providerName="Oracle.DataAccess.Client" />
然后,在.cs文件中编写如下代码,代码要注意的地方是存储过程的参数名要与代码中的参数名一致:
/// <summary>
/// 获取当前页数据
/// </summary>
/// <returns></returns>
public DataSet GetCurrentDataSet()
{
//调用EnterpriseLibrary获取Database对象
Database db = DatabaseFactory.CreateDatabase("OracleSource");
//获取OracleCommand
OracleCommand com = db.GetStoredProcCommand("WP_ALL_PAGINATION") as OracleCommand;
//表名称
com.Parameters.Add("TABLENAME_IN", OracleDbType.Varchar2, 50);
com.Parameters["TABLENAME_IN"].Direction = ParameterDirection.Input;
com.Parameters["TABLENAME_IN"].Value = tableName;
//每页显示记录数
com.Parameters.Add("PAGESIZE_IN", OracleDbType.Int32);
com.Parameters["PAGESIZE_IN"].Direction = ParameterDirection.Input;
com.Parameters["PAGESIZE_IN"].Value = PageSize * PageNo;
//当前页索引值
com.Parameters.Add("PAGEINDEX_IN", OracleDbType.Int32);
com.Parameters["PAGEINDEX_IN"].Direction = ParameterDirection.Input;
com.Parameters["PAGEINDEX_IN"].Value = (PageNo - 1) * PageSize;
//排序字段
com.Parameters.Add("ORDERSYNTAX_IN", OracleDbType.Varchar2, 3000);
com.Parameters["ORDERSYNTAX_IN"].Direction = ParameterDirection.Input;
com.Parameters["ORDERSYNTAX_IN"].Value = orderBY;
//Where子句下条件
com.Parameters.Add("CONDITION_IN", OracleDbType.Varchar2, 3000);
com.Parameters["CONDITION_IN"].Direction = ParameterDirection.Input;
com.Parameters["CONDITION_IN"].Value = whereCondition;
//显示的字段
com.Parameters.Add("FIELDSNAME_IN", OracleDbType.Varchar2,300);
com.Parameters["FIELDSNAME_IN"].Direction = ParameterDirection.Input;
com.Parameters["FIELDSNAME_IN"].Value = showFields;
//主键
com.Parameters.Add("ONLYFIELD_IN", OracleDbType.Varchar2, 100);
com.Parameters["ONLYFIELD_IN"].Direction = ParameterDirection.Input;
com.Parameters["ONLYFIELD_IN"].Value = guid;
//返回总记录数
com.Parameters.Add("COUNT_OUT", OracleDbType.Int32);
com.Parameters["COUNT_OUT"].Direction = ParameterDirection.InputOutput;
com.Parameters["COUNT_OUT"].Value = 0;
//返回记录集
com.Parameters.Add("cur_out", OracleDbType.RefCursor);
com.Parameters["cur_out"].Direction = ParameterDirection.Output;
DataSet ds = db.ExecuteDataSet(com);
//符合条件的记录总条数
Count = int.Parse(com.Parameters["COUNT_OUT"].Value.ToString());
return ds;
}
由于微软在.net framework4中会将System.Data.OracleClient.dll deprecated,而且就访问效率和速度而言,System.Data.OracleClient.dll与Oracle.DataAccess.dll相比,微软的确实没有oracle提供的类库有优势,所以我放弃了使用多年的System.Data.OracleClient.dll,取而代之的是odp.net。然而odp.net的优点不止这些,还包括:
1、不在安装客户端也能访问服务器上的oracle(假设Application Server与DB Server 分开)
2、不需要配置TnsNames.Ora文件
当然,我选择odp.net的最主要的原因还是性能。这篇文章列举了两者之间的对比。Technical Comparison: ODP.NET Versus Microsoft OracleClient
ORA-01157: 无法标识/锁定数据文件 7
錯誤提示為:
SQL> startup ORACLE 例程已经启动。 Total System Global Area 293601280 bytes Fixed Size 1290208 bytes Variable Size 209715232 bytes Database Buffers 75497472 bytes Redo Buffers 7098368 bytes 数据库装载完毕。 ORA-01157: 无法标识/锁定数据文件 7 - 请参阅 DBWR 跟踪文件 ORA-01110: 数据文件 7: 'D:\TCM52.DBF'
原因:我在數據庫服務停止的時候,將數據文件D:\TCM52.DBF刪除了。
解決方法:
SQL> startup ORACLE 例程已经启动。 Total System Global Area 293601280 bytes Fixed Size 1290208 bytes Variable Size 213909536 bytes Database Buffers 71303168 bytes Redo Buffers 7098368 bytes 数据库装载完毕。 ORA-01157: 无法标识/锁定数据文件 7 - 请参阅 DBWR 跟踪文件 ORA-01110: 数据文件 7: 'D:\TCM52.DBF' SQL> alter database datafile 'd:\TCM52.dbf' offline drop; 数据库已更改。 SQL> alter database open; 数据库已更改。 SQL> drop tablespace TCM52 including contents; 表空间已删除。 SQL> create undo tablespace TCM52 datafile 'E:\oracle\product\10.2.0\oradata\TCM52.dbf' size 2048M extent management local; 表空间已创建。 SQL> alter system set undo_tablespace=TCM52; 系统已更改。 SQL>
有這樣一個需求:用戶A在表空間ts1下,用戶B在表空間ts2下,要求在用戶B下創建一個trigger,這個trigger的主要功能是修改用戶A中的表。
trigger如下:
create or replace trigger tri_test
after insert or update or delete on t_test
for each row
begin
if inserting then
insert into A.t_user(id,title,modifydate)
values(:new.ID,:new.TITLE,1,sysdate);
elsif updating then
update A.t_user t set t.title =:new.CTITLE,t.modifydate=sysdate where t.id=:new.ID;
elsif deleting then
update A.t_user t set t.deleted=1,t.modifydate=sysdate where t.id=:new.ID;
end if;
end ;
但編譯的時候提示:
PL/SQL: ORA-01031: insufficient privileges 權限不足的意思 PL/SQL: SQL Statement ignored
既然提示權限不足,那麼我想一定是用戶B中的trigger對用戶A中的表是無權操作的,終於在google的幫助下,找到了解答,見解決問題的blog
解決方法如下:
grant update on A.t_user to B grant insert on A.t_user to B
這樣就解決了
當GridView的綁定數據源為空時,GridView是不顯示標題列的,用下面的方法可以顯示。
分如下步驟
1、先讓GridView的數據源有數據,也就是在頁面上能夠顯示標題列;
2、打開頁面源文件,並將GridView生成的標題列<tr></td>復制到一個<div></div>中
3、將這個復制到aspx頁面中的指定位置上
4、編寫控制顯示腳本
代碼如下:
<div id="div_gridViewHeader">
<table class="Winstar-table">
<tr><th scope="col">文件名称</th><th scope="col">本库记录</th><th scope="col">接收类型</th><th scope="col">接收时间</th><th scope="col">调入状态</th><th scope='col'>过滤</th><th scope='col'>处理人</th><th scope='col'>操作</th></tr>
</table>
</div>
<asp:GridView ID="gvList" runat="server" AutoGenerateColumns="False" CssClass="Winstar-table" OnRowDataBound="gvList_RowDataBound">
<Columns>
<asp:BoundField DataField="guid" Visible="False" />
<asp:TemplateField HeaderText="文件名称">
<ItemTemplate>
<%# Eval("DOCTITLE") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="本库记录">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("DOCID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="接收类型">
<ItemTemplate>
<%# Eval("MODIFYSTATE")%></ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="MODIFYDATE" HeaderText="接收时间" DataFormatString="{0:yyyy-MM-dd}" />
<asp:TemplateField HeaderText="调入状态">
<ItemTemplate>
<%# Eval("INPUTSTATE")></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="过滤">
<ItemTemplate>
<%# Eval("HIDESTATE")%></ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="DEALUSERNAME" HeaderText="处理人" />
<asp:TemplateField HeaderText="操作">
<ItemTemplate>
<asp:LinkButton ID="lbtnImport" runat="server">调入</asp:LinkButton>
<asp:LinkButton ID="lbtnDelete" runat="server">删除</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<script type="text/javascript">
var grid = document.getElementById('<%=gvList.ClientID %>');
if(grid&&grid.getElementsByTagName('td')!=null&&grid.getElementsByTagName('td').length>0)
{
document.getElementById('div_gridViewHeader').style.display='none';
}
</script>
乾卦學習感想
十一 20
雖然很早的時候就聽說過易經,但一直也沒有去了解過,每次到圖書館裡面,借的書也都是有關計算機方面的,再就是我比較感興趣的道家或中醫了。相比計算機技術發展的日新月異,易經就有些相形見絀了,基本沒什麼變化,似乎用“易”來做書名都很不適當。也許就是易經的玄妙之處正在於此,是其以各種卦排列組合成不同的象,來解釋這個世界,是本質的,內在的,又是有些奧秘的。
我看了乾卦,有人說,能把乾卦研究明白了,就能參悟出許多哲理出來。確實,乾卦講的就是一個人一生的濃縮,一件事物發展的濃縮。因為易經裡面使用的都是象,用龍來比喻,或用其它的來比喻,也不知道古人是比喻能力很強還是怕後人不懂,干嘛弄這麼多比喻呢?
乾卦共有六個爻,其實每卦都是有六個。每個爻都有爻詞來解析的。初九是潛龍勿用,九二是見龍在田,九三是君子終日乾乾,九四是或躍在淵,九五是飛龍在天,上九是亢龍有悔。聽起來都是降龍十八掌的口決,阿金庸真是博學呀,順便佩服一下。龍從初九一直到上九,基本上就是一個人一生的狀態了。其實人也滿可悲的,從潛龍勿用,經過不斷的進取努力,最後的結果就是亢龍有悔。怪不得黃帝們都叫九五之尊,不叫九六之尊呢。
人在很多時候都是在不斷的向外追求,追求著外在東西,很少去了解自己,真正的給自己一些時間來觀察自己。知人者智,自知者明。還是要做一個明白人才好。就是吃東西,我自己是屬於胃寒的,我自己也的確花了些時間來了解什麼食物是寒性的,比如綠茶是寒的,我不喝;黃瓜是寒的,但我又特別喜歡吃,有些事情即使知道了,也做不到。
jquery ajax调用asp.net webservice就一个难点:当创建好WebService的时候,类的属性[System.Web.Script.Services.ScriptService]是被注释了的,要取消注释,就可以调用了。
如下:
$(function(){
var cur_url = location.href;
var title = document.title;
var host = location.host;
cur_url = cur_url.replace(location.protocol+'//'+host,'');
$.ajax({
type:"POST",
contentType:"application/json",
url:"../../../LogAccess.asmx/InsertAccessingLog",
data:"{pageTitle:'"+title+"',pageIp:'"+host+"',pageUrl:'"+cur_url+"'}",
dataType:'json',
success:function(result){
if(result.d){
//alert(result.d)
}
}
});
});
插件名称:jquery-editable-select
下载地址:http://plugins.jquery.com/node/9250
这个插件有个小问题:
1、显示的是option的text值,没有显示value值
2、如果option有value和text,获取不到value值
就是无法获取select option的value值。现将这个插件的源代码进行修改:修改的原来的funtion是
duplicateOptions: function() {
var context = this;
var wrapper = $(document.createElement('div'));
wrapper.addClass('editable-select-options');
var option_list = $(document.createElement('ul'));
wrapper.append(option_list);
var options = this.select.find('option');
options.each(function() {
if($(this).attr('selected')) {
context.text.val($(this).val());
context.current_value = $(this).val();
};
var li = $('<li>'+ $(this).val() +'</li>');
context.initListItemEvents(li);
option_list.append(li);
});
this.wrapper = wrapper;
this.checkScroll();
},
修改为:
duplicateOptions: function() {
var context = this;
var wrapper = $(document.createElement('div'));
wrapper.addClass('editable-select-options');
var option_list = $(document.createElement('ul'));
wrapper.append(option_list);
var options = this.select.find('option');
options.each(function() {
if($(this).attr('selected')) {
context.text.val($(this).text());
context.current_value = $(this).val();
};
var li = $('<li value='+$(this).val()+'>'+ $(this).text() +'</li>');
context.initListItemEvents(li);
option_list.append(li);
});
this.wrapper = wrapper;
this.checkScroll();
},
调用代码为:(可以直接使用)
<!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>jQuery插件jquery.editable-select可输入的下拉框</title>
<script type="text/javascript" src="../jquery-1.3.2.js"></script>
<script src="jquery.editable-select.js"></script>
<link rel="stylesheet" type="text/css" href="jquery.editable-select.css"/>
</head>
<body>
<div>
<label for="name">Names</label>
<select name="drpPublisher" id="drpPublisher" class="Winstar-input120">
<option value="0">第一个</option>
<option value="1">第二个</option>
<option value="2">第三个</option>
<option value="3">第四个</option>
</select>
</div>
<input type="text" id="ddd" />
</body>
<script type="text/javascript">
$(function() {
$('#drpPublisher').editableSelect(
{
bg_iframe: true,
onSelect: function(list_item) {
// 'this' is a reference to the instance of EditableSelect
// object, so you have full access to everything there
alert('List item text: '+ list_item.val());
$('#ddd').val(this.text.val());
},
case_sensitive: false, // If set to true, the user has to type in an exact
// match for the item to get highlighted
items_then_scroll: 10 // If there are more than 10 items, display a scrollbar
}
);
});
</script>
</html>