اعلانات انجمن


ارسال پاسخ 
 
امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل این کد به نظرتون کجاست؟
نویسنده پیام
am2222 آفلاین
کاربر عادی
*

ارسال‌ها: 26
تاریخ عضویت: مهر ۱۳۹۲
اعتبار: 4
ارسال: #1
مشکل این کد به نظرتون کجاست؟
سلام
من قصددارم  روی دیتابیس یک featureclass رو ویرایش کنم.یعنی feature ها رو اصافه، حذف و ویرایششون کنم. اولین قدمم اضافه کردن اونهاست.این قسمتی از کدی هست که نوشتم


کد:
// getLayerFromGeoDatabase();
// Create the workspace factory.
Type factoryType = Type.GetTypeFromProgID("esriDataSourcesGDB.SqlWorkspaceFactory");
IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType);
IWorkspaceFactory2 workspaceFactory2 = workspaceFactory as IWorkspaceFactory2;
// Build a connection string.
String[] connectionProps =
{
"dbclient=SQLServer", "serverinstance=CRAZYVIRUS-HP",
"database=land_gis", "authentication_mode=OSA"
};
String connString = String.Join(";", connectionProps);

IWorkspace workspace = workspaceFactory2.OpenFromString(connString, 0);
ESRI.ArcGIS.Geodatabase.IFeatureWorkspace featureWorkspace = (ESRI.ArcGIS.Geodatabase.IFeatureWorkspace)workspace; // Explict Cast
ESRI.ArcGIS.Geodatabase.IFeatureClass featureClass = featureWorkspace.OpenFeatureClass("dbo.PROPERTY");

ESRI.ArcGIS.Carto.IFeatureLayer featureLayer = new ESRI.ArcGIS.Carto.FeatureLayerClass();


featureLayer.FeatureClass = featureClass;



featureLayer.Name = featureClass.AliasName;
featureLayer.Visible = true;

IFeature feature = featureClass.CreateFeature();
feature.Shape = null;

ISubtypes subtypes = (ISubtypes)featureClass;
IRowSubtypes rowSubtypes = (IRowSubtypes)feature;
if (subtypes.HasSubtype)
{

rowSubtypes.SubtypeCode = 3;
}

rowSubtypes.InitDefaultValues();

int contractorFieldIndex = featureClass.FindField("owner_ID");
feature.set_Value(contractorFieldIndex, "1234");

feature.Store();

ولی توی خط  IFeature feature = featureClass.CreateFeature(); با این ارور مواجه میشم


کد:
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.


سرچی ک زدم این یک ارور عمومیه..کسی تا به الان این مشکل رو داشته؟میتونین در موردش کمکم کنید؟تصویر: images/smilies/confused.gif
ممنون

 
۳۱-۴-۱۳۹۳ ۰۹:۳۷ عصر
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در یک پاسخ
javadadabi آفلاین
کاربر عادی
*

ارسال‌ها: 94
تاریخ عضویت: خرد ۱۳۹۳
اعتبار: 38
ارسال: #2
RE: مشکل این کد به نظرتون کجاست؟
سلام
اول اینکه اگر کد رو برای یک برنامه SAND ALONE می نویسید.کد نویسی برای WORKASPACE و معرفی لایه مورد نظر منطقی به نظر میرسه.
اگر که نه،کد رو برای ARCGIS DESKTOP نوشتید،نیازی به این همه کد نویسی نبود و کافی بود نام لایه مورد نظر رو در لیست لایه های موجود در map جستجو و اونو معرفی کنید.
در مورد خطایی که می فرمایید حدس من این هست که لایه هدف شما که می خواید ویرایشش کنید برای ویرایش register نشده.(register as versioned)
 
۱-۵-۱۳۹۳ ۱۲:۱۹ صبح
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در یک پاسخ
 اعتبار داده شده توسط : am2222(+1)
am2222 آفلاین
کاربر عادی
*

ارسال‌ها: 26
تاریخ عضویت: مهر ۱۳۹۲
اعتبار: 4
ارسال: #3
RE: مشکل این کد به نظرتون کجاست؟
سلام..بله برای stand alone هست.درسته اون versioning رو فعال نکرده بودم...من الان یه سوالی دارم..من دیتابیسم روی لوکال هاست هست..بخوام منتقلش کنم روی سرور و انلاینش کنم..بک اپ بگیرم میتونم این کار رو بکنم؟یا اذیت میکنه؟بهترین راه به نظرتون چیه؟
۲-۵-۱۳۹۳ ۰۹:۳۲ عصر
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در یک پاسخ
ارسال پاسخ 


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان