最近接着做考试系统,因为考试数据量大,所以我们将题库表分为一个课程下一个题型为一个题库表,这样就会有一个动态创建数据库表的过程,就会有动态得到数据库表名,我们采用的是用各个汉子的首字母来得到表名。开始一直是让人手动输入,既然规则已经有了,就可以让程序自动获取,不用用户手动输入。开始自己尝试着写,但是微软已经给咱提供了,只要引用了直接调用就行了。
#region 汉子的首字母
/// <summary>
/// 汉字转化为拼音首字母
/// </summary>
/// <param name="str">汉字</param>
/// <returns>首字母</returns>
public static string GetFirstPinyin(string str)
{
string r = string.Empty;
foreach (char obj in str)
{
try
{
ChineseChar chineseChar = new ChineseChar(obj);
string t = chineseChar.Pinyins[0].ToString();
r += t.Substring(0, 1);
}
catch
{
r += obj.ToString();
}
}
return r;
}
#endregion
#region 为课程名称和映射文本框添加默认值
/// <summary>
/// 为课程名称和映射文本框添加默认值
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlSubject_SelectedIndexChanged(object sender, EventArgs e)
{
#region 为课程名称和映射文本框添加默认值
string strCourseName = "";
strCourseName =ddlYear.Text.ToString()+ ddlProvince.SelectedItem.Text.ToString() + ddlCourseType.SelectedItem.Text.ToString() + ddlSubject.SelectedItem.Text.ToString();
txtCourseName.Text = strCourseName;
string strCourseMap = "";
strCourseMap = GetFirstPinyin(strCourseName);
strCourseMap = strCourseMap.ToLower();
txtCourseMapping.Text = strCourseMap;
#endregion
}
#endregion
显示效果:
这样,用户只要选择了上面的几个下拉框,对应的课程名和课程映射名都自动获取了。课程映射名的用途就是来生成数据库表名的,这样就方便了很多。微软真的很强大,现在只要能想到的他都几乎做好了,希望啥时候能有微软也没有的,那我就发了。