解决方案 »
- 地址标准化问题
- 求一段 聊天程序的代码,能实现功能即可
- WPF 设置AutoCompleteBox焦点
- 请问:为什么安装的sql server2005 在management studio 却运行的是sql server 8.0而不是9.0?
- 如何使新窗口停靠在指定控件下?
- C#上位机实时更新数据库并在网页上打开遇到的问题,急~~~~~~~~~~~~~~~~~~~~~~~~
- 关于提交页面刷新后,定位页面的位置的问题
- C#跨界面赋值,同一个变量的不同值赋给不同的文本控件
- unix下的tomcat问题!
- C#做类似QQ截图的工具时,将截图保存为文件时将保存对话框也给保存下来了?
- 如何获取视频文件的播放时间?
- C#怎样读取数据库中的图片?(看清说明再回答!)
感觉 你这个有点类似生成动态树一样,从一张表中读数据,生成一动态树,可以这样设计表结构
编码 名称 父编码 等级
01 江苏 <空> 0
0101 南京 01 1
0102 苏州 01 1
010101 鼓楼区 0101 2
02 山东 <空> 0
0201 济南 02 1读表时在根据你的要求添加你想要做的功能
{
int n1 = 0;
int n2 = 0;
int n3 = 0;
int n4 = 0;
for (int i = 0; i < dgv.RowCount; i++)
{
if (dgv.Rows[i].Cells["代码"].Value.ToString().Length == 2)
{
n1 += 1;
n2 = 0;
n3 = 0;
n4 = 0;
dgv.Rows[i].Cells["名称"].Value = NumToStr(n1,1) + dgv.Rows[i].Cells["名称"].Value;
}
else if (dgv.Rows[i].Cells["代码"].Value.ToString().Length == 3)
{
n2 += 1;
dgv.Rows[i].Cells["名称"].Value = NumToStr(n2, 2) + dgv.Rows[i].Cells["名称"].Value;
}
else if (dgv.Rows[i].Cells["代码"].Value.ToString().Length == 4)
{
n3 += 1;
dgv.Rows[i].Cells["名称"].Value = NumToStr(n3, 3) + dgv.Rows[i].Cells["名称"].Value;
}
else if (dgv.Rows[i].Cells["代码"].Value.ToString().Length == 5)
{
n4 += 1;
dgv.Rows[i].Cells["名称"].Value = NumToStr(n4, 4) + dgv.Rows[i].Cells["名称"].Value;
}
}
} public string NumToStr(int num,int type)
{
if (type == 1)
{
string[] str = {"","一","二","三","四","五","六","七","八","九" };
return str[num] + "、";
}
else if (type == 2)
{
string[] str = { "", "(一)", "(二)", "(三)", "(四)", "(五)", "(六)", "(七)", "(八)", "(九)" };
return str[num] + "、";
}
else if (type == 3)
{
string[] str = { "", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
return str[num] + "、";
}
else if (type == 4)
{
string[] str = { "", "(1)", "(2)", "(3)", "(4)", "(5)", "(6)", "(7)", "(8)", "(9)" };
return str[num] + "、";
}
}
if (dgv.Rows[i].Cells["代码"].Value.ToString().Length == 2)
{
n1 += 1;
//这里就已经重新开始排序了
n2 = 0;
n3 = 0;
n4 = 0;
dgv.Rows[i].Cells["名称"].Value = NumToStr(n1,1) + dgv.Rows[i].Cells["名称"].Value;
}2.至于有几百条,那么则自己补充数组.
string[] str = { "", "一", "二", "三", "四", "五", "六", "七", "八", "九","十",…… };
public class Money
{
public Money()
{
//
// TODO: Add constructor logic here
//
}
private char 转换数字(char x)
{
string stringChnNames = "零一二三四五六七八九";
string stringNumNames = "0123456789";
return stringChnNames[stringNumNames.IndexOf(x)];
}
private string 转换万以下整数(string x)
{
string[] stringArrayLevelNames = new string[4] { "", "十", "百", "千" };
string ret = "";
int i;
for (i = x.Length - 1; i >= 0; i--)
if (x[i] == '0')
ret = 转换数字(x[i]) + ret;
else
ret = 转换数字(x[i]) + stringArrayLevelNames[x.Length - 1 - i] + ret;
while ((i = ret.IndexOf("零零")) != -1)
ret = ret.Remove(i, 1);
if (ret[ret.Length - 1] == '零' && ret.Length > 1)
ret = ret.Remove(ret.Length - 1, 1);
if (ret.Length >= 2 && ret.Substring(0, 2) == "一十")
ret = ret.Remove(0, 1);
return ret;
}
private string 转换整数(string x)
{
int len = x.Length;
string ret, temp;
if (len <= 4)
ret = 转换万以下整数(x);
else if (len <= 8)
{
ret = 转换万以下整数(x.Substring(0, len - 4)) + "万";
temp = 转换万以下整数(x.Substring(len - 4, 4));
if (temp.IndexOf("千") == -1 && temp != "")
ret += "零" + temp;
else
ret += temp;
}
else
{
ret = 转换万以下整数(x.Substring(0, len - 8)) + "亿";
temp = 转换万以下整数(x.Substring(len - 8, 4));
if (temp.IndexOf("千") == -1 && temp != "")
ret += "零" + temp;
else
ret += temp;
ret += "万";
temp = 转换万以下整数(x.Substring(len - 4, 4));
if (temp.IndexOf("千") == -1 && temp != "")
ret += "零" + temp;
else
ret += temp;
}
int i;
if ((i = ret.IndexOf("零万")) != -1)
ret = ret.Remove(i + 1, 1);
while ((i = ret.IndexOf("零零")) != -1)
ret = ret.Remove(i, 1);
if (ret[ret.Length - 1] == '零' && ret.Length > 1)
ret = ret.Remove(ret.Length - 1, 1);
return ret;
} private string 转换小数(string x)
{
string ret = "";
for (int i = 0; i < x.Length; i++)
ret += 转换数字(x[i]);
return ret;
} public string NumToChn(string x)
{
if (x.Length == 0)
return "";
string ret = "";
if (x[0] == '-')
{
ret = "负";
x = x.Remove(0, 1);
}
if (x[0].ToString() == ".")
x = "0" + x;
if (x[x.Length - 1].ToString() == ".")
x = x.Remove(x.Length - 1, 1);
if (x.IndexOf(".") > -1)
ret += 转换整数(x.Substring(0, x.IndexOf("."))) + "点" + 转换小数(x.Substring(x.IndexOf(".") + 1));
else
ret += 转换整数(x);
return ret;
}
}
public string NumToStr(int num, int type)
{
if (type == 1)
{
//调用数字转大写的类
转大写的类 类 = new 转大写的类();
string str = 类.NumToChn(num.ToString());
return str + "、";
}
else if (type == 2)
{
//调用数字转大写的类
转大写的类 类 = new 转大写的类();
string str = 类.NumToChn(num.ToString());
return "(" + str + ")、";
}
else if (type == 3)
{
return num.ToString() + "、";
}
else if (type == 4)
{
return "(" + num.ToString() + ")、";
}
}