敬请慕白兄帮忙看一下
以下代码是我的邮件转发页面的代码,邮件是多附件的,附件名称用的DropDownList显示,问题:登陆后,第一次进去邮件转发页面的时候是正常的,我后退一下再进去就不行,这个问题我已经问过慕白兄,可能是重复提交,不过我自己还是没能搞定,所以特开一贴,期待慕白兄等高手帮我看一看,拜谢~~~
——————
报错:列“filename”被约束为是唯一的。值“本.txt”已存在。
附:(“本.txt”是附件名称)
源错误中显示是这一行:
upfiles.Rows.Add(path);//增加
——————
public void CreatTable()
{
upfiles = new DataTable( "upfile ");
DataColumn[] keys = new DataColumn[1];
keys[0] = upfiles.Columns.Add( "filename ", typeof(string));
keys[0].AllowDBNull = false;
upfiles.PrimaryKey = keys;
upfiles.Columns.Add( "filestream ", typeof(Stream));
fname.Text = " ";
fname1.Text = " ";
}
private void ShowMail()
{
string MailId = this.GetSessionState( "MailId ");
string sql1 = "SELECT * FROM Mail WHERE 邮件编号 = " + MailId, conn;
SqlDataReader dr;
SQLHelper sqlHelp = new SQLHelper();
sqlHelp.ExecSQL(sql1, out dr);
while (dr.Read())
{
string filepath = dr[ "附件上传地址 "].ToString();
string[] strpaths = filepath.Split( '; ');
for (int i = 0; i < strpaths.Length; i++)
{
if (upfiles == null)
{
CreatTable();
}
upfiles.Rows.Add(path);//增加
ArrayList dc = new ArrayList();//定义一个数组dc
for (int j = 0; j < upfiles.Rows.Count;j++) {
DataRow df = upfiles.Rows[j];//df为数据表upfiles的第j行
dc.Add(df[0].ToString());//把数据表upfiles的第j行循环插入到数组dc
}
files.DataSource = dc;//下拉列表的数据源为数组dc
files.DataBind();//下拉列表的数据绑定
}
}
}
private void Page_Load(object sender, System.EventArgs e)
{
if (!Page.IsPostBack)
{
string MailId = this.GetSessionState( "MailId ");//获得邮件的Id
ShowMail();
}
}
[解决办法]
沙发
[解决办法]
upfiles.PrimaryKey = keys;
附件名不能重复
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
最新版本:20070130
http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
[解决办法]
慕白兄 还没有来呢
既然是问 慕白兄 的,我就不回答了
哈哈
看着代码头疼
[解决办法]
path重复了。我在上贴说的那个方法是指保存到数据库的。
[解决办法]
恩。帮顶吧~~