私のaspxページでは、「ドラフトドキュメント」という値を選択するとドロップダウンリストが表示され、新しいDraftID
(ID)が取得されます。このドロップダウン リストの下には、アップロード コントロールと、添付したときにファイルを表示する gridview があります。以下のクエリをグリッドビューのデータソースに使用しましたが、値 (_DraftId) に問題があります
var query = from at in _DataContext.tblAttachments
where at.DraftID == _DraftId
select at;
私はトップで使用していますが、それはnull_DraftId = (int)draft.DraftId;
です。draft.DraftId = new int();
実際、値を取得して変数で使用し、コードの別の場所で使用する方法がわかりません。
Tbldraft
DraftID BIGINT IDENTITY(1,1) PRIMARY KEY
FromEmailID
Tblattachement:
AttachmentID BIGINT IDENTITY(1,1) PRIMARY KEY,
Draftid BIGINT NOT NULL REFERENCES tblDraft(DraftID),
FileName varchar(40) NOT NULL,
Aspx.cs
public partial class Draft : System.Web.UI.Page
{
private EDMSDataContext _DataContext;
private int _DraftId;
private string _filePath;
private string _filename;
private string _filename_Ext;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ddlDraft_SelectedIndexChanged(object sender, EventArgs e)
{
_DataContext = new EDMSDataContext();
if (ddlDraft.SelectedValue == "Draft Document")
{
tblDraft draft = new tblDraft();
draft.DraftId = new int();
_DraftId = (int)draft.DraftId;
draft.FromEmailId = (Guid)Membership.GetUser().ProviderUserKey;
_DataContext.tblDrafts.InsertOnSubmit(draft);
_DataContext.SubmitChanges();
}
}
protected void btnUpload_Click(object sender, EventArgs e)
{
string filePath = FileUpload1.PostedFile.FileName;
string fullAddress = Path.GetFullPath(filePath);
_filePath = fullAddress;
string filename = Path.GetFileName(filePath);
_filename = filename.Split('.')[0];
_filename_Ext = filename;
string ext = Path.GetExtension(filename);
string contenttype = String.Empty;
//Set the contenttype based on File Extension
switch (ext)
{
case ".doc":
contenttype = "application/vnd.ms-word";
break;
case ".docx":
contenttype = "application/vnd.ms-word";
break;
case ".xls":
contenttype = "application/vnd.ms-excel";
break;
case ".xlsx":
contenttype = "application/vnd.ms-excel";
break;
case ".jpg":
contenttype = "image/jpg";
break;
case ".png":
contenttype = "image/png";
break;
case ".gif":
contenttype = "image/gif";
break;
case ".pdf":
contenttype = "application/pdf";
break;
}
// if (contenttype != String.Empty)
// {
Stream fs = FileUpload1.PostedFile.InputStream;
BinaryReader br = new BinaryReader(fs);
Byte[] bytes = br.ReadBytes((Int32)fs.Length);
//insert the file into database
// }
tblAttachment attach = new tblAttachment();
attach.DraftID = _DraftId;
attach.FileName = filename;
attach.ContentType = contenttype;
attach.Data = bytes;
attach.Exten = ext;
_DataContext.tblAttachments.InsertOnSubmit(attach);
_DataContext.SubmitChanges();
//doctranscon.TransmitToConid = Convert.ToInt32(ddlTransmittaltoCon.SelectedValue);
var query = from at in _DataContext.tblAttachments
where at.DraftID == _DraftId
select at;
GridViewEfile.DataSource = query;
GridViewEfile.DataBind();
}
}